Error handling and diagosis