Список исключений, которые не могут быть пойманы в .NET

Каков список исключений, которые не могут быть пойманным в .NET? Или где я могу найти такой список?

17
задан Denis 12 September 2011 в 19:44
поделиться

2 ответа

Попробуйте это ... (протестировано на .NET Core 2.0)

System.Runtime.Serialization.FormatterServices.GetUninitializedObject(typeof(Type).GetType()).ToString()

A System.ExecutionEngineException, который игнорирует все блоки try / catch / finally, выбрасывается, даже если он устарел, говоря, что среда выполнения НЕТ ДЛИННЫЕ БРОСЫ этого типа исключения. Странно, а?

Причиной этого может быть typeof(Type).GetType() возвращает typeof(System.RuntimeType), который является внутренним типом и присущим среде исполнения. В System.Runtime.Serialization.FormatterServices.GetUninitializedObject имеются аргументы относительно этих типов, например, typeof(string), но разработчики, вероятно, забыли проверить этот закрытый тип. В результате возвращается недействительный System.RuntimeType. Когда вызывается ToString, недопустимое состояние вызывает сбой среды выполнения.

1
ответ дан 30 November 2019 в 10:57
поделиться

SEHException не может быть пойман в некоторых случаях. Это может быть брошено неуправляемым кодом. Отличная SO тема по этой теме появляется здесь: SEHException не перехватывается Try / Catch

0
ответ дан 30 November 2019 в 10:57
поделиться