Pregunta

Por que es UnhandledExceptionEventArgs.ExceptionObject un objeto y no un Exception?

me estoy adjuntando a AppDomain.UnhandledException.

me gustaria emitir UnhandledExceptionEventArgs.ExceptionObject a una Exception e interrogarlo.

Y teniendo esto en cuenta, ¿alguna vez será nulo?

El documentación de MSDN no es del todo útil.

Obtiene el objeto de excepción no controlado.

¿Fue útil?

Solución

Esto no se puede escribir en Exception porque es posible generar objetos en .Net que no se deriven de System.Exception.Esto no es posible en C# o VB.Net, pero sí en otros lenguajes basados ​​en CLR.Por lo tanto, la API debe admitir esta posibilidad y utiliza el tipo objeto.

Entonces, si bien nunca debería ser nulo, es posible que en realidad no sea una System.Exception.

Consulte la sección 10.5 de las especificaciones de CLI (específicamente la regla 40 de CLS) para obtener más detalles.

Otros consejos

Además de lo que Jared ya ha mencionado, se puede emitir de manera segura a Exception en .NET Framework 2.0 y superior si RuntimeCompatibilityAttribute(WrapNonExceptionThrows=true) ha sido aplicado a su montaje (se añadirá automáticamente por el C # y VB compiladores).

Cuando se ha aplicado este atributo, no Excepción "excepciones" será envuelto en RuntimeWrappedException.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top