What is ApplicationException for in .NET?

The short answer is: nowhere. It is a relic of the past, where Microsoft intended developers to inherit all their custom exceptions from ApplicationException. Shortly after, they changed their mind and advised that custom exceptions should derive from the base Exception class. See Best Practices for Handling Exceptions on MSDN. One of the more widely … Read more

System.Security.SecurityException when writing to Event Log

To give Network Service read permission on the EventLog/Security key (as suggested by Firenzi and royrules22) follow instructions from http://geekswithblogs.net/timh/archive/2005/10/05/56029.aspx Open the Registry Editor: Select Start then Run Enter regedt32 or regedit Navigate/expand to the following key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security Right click on this entry and select Permissions Add the Network Service user Give it Read permission … Read more

Why use finally in C#?

The code inside a finally block will get executed regardless of whether or not there is an exception. This comes in very handy when it comes to certain housekeeping functions you need to always run like closing connections. Now, I’m guessing your question is why you should do this: try { doSomething(); } catch { … Read more

.NET Global exception handler in console application

No, that’s the correct way to do it. This worked exactly as it should, something you can work from perhaps: using System; class Program { static void Main(string[] args) { System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper; throw new Exception(“Kaboom”); } static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject.ToString()); Console.WriteLine(“Press Enter to continue”); Console.ReadLine(); Environment.Exit(1); } } Do keep … Read more

Logging uncaught exceptions in Python

Here’s a complete small example that also includes a few other tricks: import sys import logging logger = logging.getLogger(__name__) handler = logging.StreamHandler(stream=sys.stdout) logger.addHandler(handler) def handle_exception(exc_type, exc_value, exc_traceback): if issubclass(exc_type, KeyboardInterrupt): sys.__excepthook__(exc_type, exc_value, exc_traceback) return logger.error(“Uncaught exception”, exc_info=(exc_type, exc_value, exc_traceback)) sys.excepthook = handle_exception if __name__ == “__main__”: raise RuntimeError(“Test unhandled”) Ignore KeyboardInterrupt so a console python … Read more