Я пытаюсь обрабатывать необработанные исключения в консольном приложении asp.net 5, но я, похоже, не поймаю эти ошибки, используя код. Как только возникает исключение, код разбивается. Есть ли способ в dnx-приложении поймать необработанные исключения?ASP.NET Core 1.0 Глобальный обработчик исключений в консольном приложении (DNX)
public class Program
{
[STAThread]
public static void Main(string[] args)
{
#if !DNXCORE50
// Register unhandled exception handler
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionHandler);
// Throw exception
throw new Exception("1");
#endif
Console.ReadLine();
}
#if !DNXCORE50
/// <summary>
/// Catch all unhandled exceptions in all threads.
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs args)
{
try
{
// Get the exception that was thrown
Exception exceptionThrown = (Exception)args.ExceptionObject;
Console.WriteLine("Information coming from exception handler");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
#endif
}
Это не дозвонились, потому что ваше исключение в приложении консоли, а не уровень вашего домена приложения? Другими словами, ваше исключение в консольном приложении выдается на уровень выше, чем вы слушаете событие UnhandledException. Имеет ли это смысл? – dustinmoris
Думаю, я понимаю, что вы имеете в виду, так что мне нужно сделать, чтобы захватить эти исключения? – DotnetShadow
@DotnetShadow рассмотрите нижеприведенный ответ. –