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!!!