Handling Synchronous And Asynchronous Errors