意外的应用程序崩溃 - c#Console App

时间:2016-05-04 13:29:27

标签: c# exception-handling

我有一个.NET 4.0控制台应用程序,它已在发布模式下编译并部署。应用程序执行成功的大部分时间,但有时,由于未处理的异常,它已崩溃。 Windows应用程序事件日志包含以下内容:

  

应用程序:App.exe   框架版本:v4.0.30319   描述:由于未处理的异常,进程终止。   异常信息:System.IO.FileLoadException   Stack:App.Program.Main(System.String [])

我在MSDN上阅读了一篇文章,声明'AppDomain.CurrentDomain.UnhandledException'应该用于避免未处理的异常,但显然这没有用。请帮我确定原因,以及如何解决。代码如下:

class Program
{
    private static ILog _logger;

    static void Main(string[] args)
    {
        try
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            var configFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "log4net.config");

            // Initialize Log4Net

            XmlConfigurator.Configure(new FileInfo(configFile));
            _logger = LogManager.GetLogger(typeof (LoggingHelper));  

            //App Logic starts here!
        }
        catch (Exception ex)
        {
            Log(ex);
        }
    }

    private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        try
        {
            var ex = (Exception) e.ExceptionObject;
            Log(ex);
        }
        catch
        {
        }
    }

    public static void Log(Exception ex)
    {
        try
        {
            _logger?.Error(ex);
        }
        catch
        {
        }
    }
}

0 个答案:

没有答案