Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
298 views
in Technique[技术] by (71.8m points)

c# - 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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...