More robust error handling

Gracefully handle errors with opening UART ports