Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Общая языковая среда выполнения (CLR) позволяет большинству необработанных исключений в потоках происходить естественным образом. В большинстве случаев это означает, что необработанное исключение приводит к прекращению работы приложения. Однако общеязыковая среда выполнения (CLR) предоставляет резервную защиту для некоторых необработанных исключений, которые используются для управления ходом выполнения программы.
В потоке выбрасывается ThreadAbortException, так как был вызван Abort. Это относится только к приложениям .NET Framework.
Исключение AppDomainUnloadedException возникает в потоке, потому что домен приложения, в котором выполняется поток, выгружается.
Общая среда выполнения или процесс хоста завершает поток, вызывая внутреннее исключение.
Если любое из этих исключений не обрабатывается в потоках, созданных средой CLR, исключение завершает поток, но среда CLR не позволяет продолжить исключение.
Если эти исключения необработаны в основном потоке или в потоках, которые вошли в систему выполнения из неуправляемого кода, они продолжают выполняться в обычном режиме, что приводит к прекращению работы приложения.
Замечание
Среда выполнения может вызвать необработанное исключение, прежде чем любой управляемый код имел возможность установить обработчик исключений. Несмотря на то, что управляемый код не имел возможности обрабатывать такое исключение, исключение может продолжаться естественным образом.
Выявление проблем с потоками во время разработки
Если потоки могут терпеть сбой молча, не завершая приложение, серьезные проблемы с программированием могут оставаться незамеченными. Это определенная проблема для служб и других приложений, которые выполняются в течение длительных периодов. По мере сбоя потоков состояние программы постепенно становится поврежденным. Производительность приложения может снизиться, или приложение может перестать отвечать.
Позволяя необработанным исключениям в потоках протекать естественным образом, пока операционная система не завершит программу, выявляет такие проблемы во время разработки и тестирования. Отчеты об ошибках, связанных с завершением работы программы, помогают в отладке.
Переопределение хоста
Хост без управления может использовать интерфейс ICLRPolicyManager в API размещения для переопределения политики необработанных исключений общей среды выполнения по умолчанию. Функция ICLRPolicyManager::SetUnhandledExceptionPolicy используется для установки политики для необработанных исключений.