Depois que uma exception é lançada o CLR começa uma busca no call stack por um bloco que faça o tratamento dessa exception.
O AppDomain.FirstChanceException é um evento que ocorre antes do CLR começar a procurar no call stack por um ponto da aplicação que faz o tratamento dessa exception, isto é, antes da exception ser tratada este evento é acionado.
Este evento funciona como um notificador, não afetando a exception ou cancelando o seu disparo.
Todas as exceptions lançadas pelo FirstChanceException devem ser tratadas, caso contrário o FirstChanceException torna-se recursivo.
Este recurso está disponível desde o .Net Framework 4.0.
Abaixo um exemplo de uso do FirstChanceException:
using System;
using System.Runtime.ExceptionServices;
class Program {
static void Main(string[] args) {
AppDomain.CurrentDomain.FirstChanceException
+= FirstChanceException;
try {
int number = 10;
int divisor = 0;
int result = number / divisor;
}
catch (Exception ex) {
Console.WriteLine("Error: {0}", ex.Message);
}
}
static void FirstChanceException(object sender,
FirstChanceExceptionEventArgs e) {
Console.WriteLine("First Chance (to see the) Exception: {0}",
e.Exception.Message);
}
}
Por
MSc. Fernando Henrique Inocêncio Borba Ferreira
Microsoft Most Valuable Professional – Visual C#
Referências:
http://msdn.microsoft.com/en-us/library/system.appdomain.firstchanceexception(v=vs.110).aspx
http://blogs.msdn.com/b/davidklinems/archive/2005/07/12/438061.aspx
Muito bom! Mande mais assuntos como esse 😀
Abs!!!