Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exception management practices inside event handlers

Tags:

c#

.net

exception

.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?

like image 997
jermny Avatar asked Jan 05 '12 14:01

jermny


1 Answers

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

  • C# event fundamentals and exception handling in multicast delegates
  • top-level exception handling with event handlers in c#
  • Should C# event handlers be exception safe?
  • Async command pattern - exception handling
  • Best Practices for Implementing the Event-based Asynchronous Pattern
like image 61
Devendra D. Chavan Avatar answered Sep 21 '22 16:09

Devendra D. Chavan