You want try..finally
in your handler:
try {
File.AppendAllText("Exceptions.log", (e.ExceptionObject as Exception).Message);
}
finally {
Environment.Exit(1);
}
What you have now is only catching an error that occurs when writing the log file. If there is no error (which there isn't).. it will finish the method and bubble back to the original exception.