Yes, I think along similar lines. Some more remarks: 1. you are allowed to catch Exceptions to your hearts content, but not to hide them: i.e. you should remedy the problem or somehow let it ripple upwards. There are three ways to do that: - not catching the exception at all; - rethrowing the same exception (a simple "throw;" does that); - and the favorite: throw a new exception, more specific to your class or method, that holds the original exception as an "inner Exception". 2. Your background thread probably already has a Done event, thru which it reports results; you could use that same event to report problems, so there may not be a need to add another event. 3. there are situations where exceptions are more difficult to catch, such as in a constructor, on a thread you have no control over (say a timer tick), in native code, ... . The framework has some provisions to catch and handle these too, but I haven't grasped it completely yet. Things related to this are: - having try-catch in static Main(); I recommend this, it helps during development, especially is you show its entire ToString() as one always should. - AppDomain.CurrentDomain.UnhandledException - Forms.Application.ThreadException Greetings,
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips: - make Visual display line numbers: Tools/Options/TextEditor/AllLanguages/General - show exceptions with ToString() to see all information - before you ask a question here, search CodeProject, then Google