У меня есть проблема, которую я не могу решить для проекта. Рассмотрим этот код:
namespace TestApp
{
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(UnhandledExceptionsHandler);
int[] a = { 0, 1, 2 };
int y = a[6];
}
public static void UnhandledExceptionsHandler(object sender, UnhandledExceptionEventArgs e)
{
try
{
File.AppendAllText("Exceptions.log", (e.ExceptionObject as Exception).Message);
}
catch (Exception ex)
{
Environment.Exit(1);
}
}
}
}
Обработчик необработанного исключения фактически захватывает необработанное исключение по желанию и записывает сообщение в файл журнала. Но при выходе из обработчика код возобновляется со строкой index out of range: int y = a[6]. Мне нужен код либо для перехода к следующей строке кода, либо для продолжения работы с необработанным исключением в обычном режиме - в данном случае для завершения работы приложения. Как бы то ни было, я застрял в бесконечном цикле генерирования необработанного исключения/нажатия на обработчик события необработанного исключения.
try/finally
вместоtry/catch
? - person Jon   schedule 13.12.2013