2015-10-06 3 views
-1

не в состоянии выполнить код после исключения, он печатаетПочему этот обработчик события UnhandledException не работает?

CCCCC

но не печатает

AFTER_EXCEPTION

код показывает пойманную исключение а затем существует.

static void Main(string[] args) 
{  
    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler); // using System.Diagnostics; 

    // Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(OnThreadException); 

    Process p = Process.GetProcessById(1000); 

    Console.WriteLine("AFTER_EXCEPTION"); 

    Console.ReadLine(); 
} 

static void MyHandler(object sender, UnhandledExceptionEventArgs args) 
{ 
    Console.WriteLine("cccc"); 

    Exception temp = (Exception)args.ExceptionObject; 
    Console.WriteLine("MyHandler caught : " + temp.Message); 
    Console.WriteLine("MyHandler caught : " + temp.TargetSite);   
}  
+1

где вы получаете исключение? –

+2

Добавлено предложение показать часть кода. Пожалуйста, предоставьте ваш вопрос подробно –

+0

Это очень плохой вопрос, вы не указали никаких подробностей –

ответ

-1

Это все хорошо, чтобы настроить глобальный обработчик исключений, но вы все равно должны использовать механику C#, попробовать ... поймать.

Если он выдает исключение, и глобальный обработчик его ловит, он не возобновится в точке исключения, потому что он не знает, как это сделать.

Таким образом, ключ есть в имени, он предназначен для необработанных исключений (которые не пойманы) и обычно используется для ведения журнала и изящного cleardown, а не для C# эквивалента Visual Basics Resume on Error mechanic.

+0

NB: Этот ответ основан на предположении, что я получаю от чтения вашего кода, вы должны действительно добавить некоторые детали, объясняющие ваши рассуждения и ваши ожидания от этот код. –

Смежные вопросы