jermny
jermny

Reputation: 880

Exception management practices inside event handlers

.NET 4.0, C#

I'm trying to add some exception management framework to my project. The framework publishes exceptions to a database if able.

I've done a good amount of research on exception handling but I'm having a bit of trouble understanding how I'm supposed to handle exceptions which occur inside event handlers (i.e. a timer.elapsed or an async callback). Should each event handler have a try catch block?

Upvotes: 13

Views: 19238

Answers (1)

Devendra D. Chavan
Devendra D. Chavan

Reputation: 9011

The event handler should always have a try..catch..finally block in its body to prevent the event handler from propagating the exception. Also, event handlers are expected to execute quickly so avoid performing expensive IO or database operations inside the event handler itself.

Furthermore, you can have a property like Error to indicate to the subscribers of the event that an error has occurred (in case of an async call).

More information

Upvotes: 25

Related Questions