Почему UnhandledExceptionEventArgs.ExceptionObject является объектом, а не исключением?

Триггер может отменить текущую транзакцию, которая приведет к отмене удаления. Как сказано выше, вы также можете использовать вместо триггера.

119
задан wonea 5 October 2018 в 11:02
поделиться

2 ответа

Это нельзя ввести как Exception, потому что в .Net можно создавать объекты, которые не являются производными от System.Exception. Это невозможно в C # или VB.Net, но возможно на других языках, основанных на CLR. Следовательно, API должен поддерживать эту возможность и использовать объект типа.

Таким образом, хотя он никогда не должен быть нулевым, на самом деле это может не быть System.Exception.

См. Раздел 10.5 спецификации CLI (в частности, правило 40 CLS) для получения дополнительных сведений

140
ответ дан 24 November 2019 в 01:32
поделиться

В дополнение к тому, что уже упомянул Джаред, вы можете безопасно привести к Exception в .NET Framework 2.0 и более поздних версиях, если RuntimeCompatibilityAttribute (WrapNonExceptionThrows = true) был применен к вашей сборке (будет добавлен автоматически компиляторами C # и VB).

После применения этого атрибута «исключения», не являющиеся исключениями, будут заключены в RuntimeWrappedException .

76
ответ дан 24 November 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: