static void FatalExceptionObject(object exceptionObject) { var huh = exceptionObject as Exception; if (huh == null) { huh = new NotSupportedException( "Unhandled exception doesn't derive from System.Exception: " + exceptionObject.ToString() ); } FatalExceptionHandler.Handle(huh); }
static void Main(string[] argv) { try { AppDomain.CurrentDomain.UnhandledException += (sender, e) => FatalExceptionHandler.Handle((Exception)e.ExceptionObject); Application.ThreadException += (sender, e) => FatalExceptionHandler.Handle(e.Exception); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // whatever you need/want here Application.Run(new MainWindow()); } catch (Exception huh) { FatalExceptionHandler.Handle(huh); } }
static void Main(string[] argv) { try { AppDomain.CurrentDomain.UnhandledException += (sender, e) => FatalExceptionObject(e.ExceptionObject); Application.ThreadException += (sender, e) => FatalExceptionHandler.Handle(e.Exception); // whatever you need/want here Application.Run(new MainWindow()); } catch (Exception huh) { FatalExceptionHandler.Handle(huh); } }
public void ShouldHandleFatalException() { Exception causeException = new Exception(); Entry entry = new TestEntry(); ILog logger = _mocks.DynamicMock <ILog>(); Expect.Call(() => logger.Fatal("Exception processing: " + entry, causeException)); _mocks.ReplayAll(); IExceptionHandler exceptionHandler = new FatalExceptionHandler(logger); try { exceptionHandler.Handle(causeException, entry); Assert.Fail("No exception was thrown"); } catch (ApplicationException ex) { Assert.AreEqual(causeException, ex.InnerException); } _mocks.VerifyAll(); }
public void ShouldHandleFatalException() { Exception causeException = new Exception(); Entry entry = new TestEntry(); ILog logger = _mocks.DynamicMock<ILog>(); Expect.Call(() => logger.Fatal("Exception processing: " + entry, causeException)); _mocks.ReplayAll(); IExceptionHandler exceptionHandler = new FatalExceptionHandler(logger); try { exceptionHandler.Handle(causeException, entry); Assert.Fail("No exception was thrown"); } catch (ApplicationException ex) { Assert.AreEqual(causeException, ex.InnerException); } _mocks.VerifyAll(); }