Better exception handling in NzbDrone.exe

This commit is contained in:
kay.one 2011-10-16 18:42:20 -07:00
parent 87cf08a365
commit f1248d12c6
2 changed files with 7 additions and 11 deletions

View File

@ -1,16 +1,12 @@
using System;
using System.Reflection;
using NLog;
using Ninject;
using NzbDrone.Providers;
namespace NzbDrone
{
public static class AppMain
{
private static readonly Logger Logger = LogManager.GetLogger("Host.Main");
public static void Main(string[] args)
{
try
@ -21,8 +17,7 @@ namespace NzbDrone
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Logger.Fatal(e.ToString());
MonitoringProvider.AppDomainException(e);
}
}

View File

@ -34,7 +34,7 @@ namespace NzbDrone.Providers
public void Start()
{
AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e));
AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e.ExceptionObject as Exception));
AppDomain.CurrentDomain.ProcessExit += ProgramExited;
AppDomain.CurrentDomain.DomainUnload += ProgramExited;
@ -43,7 +43,7 @@ namespace NzbDrone.Providers
prioCheckTimer.Elapsed += EnsurePriority;
prioCheckTimer.Enabled = true;
_pingTimer = new Timer(60000) {AutoReset = true};
_pingTimer = new Timer(60000) { AutoReset = true };
_pingTimer.Elapsed += (PingServer);
_pingTimer.Start();
}
@ -102,10 +102,9 @@ namespace NzbDrone.Providers
}
private static void AppDomainException(object excepion)
public static void AppDomainException(Exception excepion)
{
Console.WriteLine("EPIC FAIL: {0}", excepion);
Logger.Fatal("EPIC FAIL: {0}", excepion);
#if DEBUG
#else
@ -116,6 +115,8 @@ namespace NzbDrone.Providers
CurrentException = excepion as Exception
}.Submit();
#endif
Logger.Fatal("EPIC FAIL: {0}", excepion);
}
}
}