Dlaczego jest UnhandledExceptionEventArgs.ExceptionObject
przedmiotem, a nie Exception
?
Przywiązuję się do AppDomain.UnhandledException
.
Chciałbym oddanych UnhandledExceptionEventArgs.ExceptionObject
do Exception
i interogate go.
Mając to na uwadze, czy kiedykolwiek będzie to zerowe?
Dokumentacja MSDN nie jest specjalnie przydatna.
Pobiera nieobsługiwany obiekt wyjątku.
System.Exception
. Wyjątek mógł wynikać z języka niezgodnego z CLI, który zdecydował się na zgłoszenieSystem.Int32
. Nowsze wersje CLR i tak będą to automatycznie zawijać,System.Exception
ale jest to ustawienie, które można wyłączyćtry-catch
blok nie pozwala na przechwytywanie obiektów niebędących wyjątkami?Oprócz tego, o czym już wspomniał Jared, możesz bezpiecznie rzutować
Exception
w .NET Framework 2.0 i nowszym, jeśliRuntimeCompatibilityAttribute(WrapNonExceptionThrows=true)
został zastosowany do twojego zestawu (zostanie dodany automatycznie przez kompilatory C # i VB).Po zastosowaniu tego atrybutu „wyjątki” niebędące wyjątkami zostaną opakowane
RuntimeWrappedException
.źródło