2010-12-05 2 views
4

Я никогда раньше не сталкивался с подобным поведением, и я подумал, может ли кто-нибудь пролить свет на этот вопрос?Необычное поведение исключения?

Как вы можете видеть на картинке, я улавливаю исключения типа AccessViolationException, и все же отладчик жалуется, что исключение необработанное!

Как это возможно?

alt text

О, и я знаю, что вы не должны иметь пустой catch блок, это не мой вопрос.

Спасибо!

Edit: Теперь я получаю этот вместо:

alt text

+2

Один снимок в темноте: заверните весь foreach с помощью дополнительного try-catch – Dialecticus 2010-12-05 01:01:10

+0

Кстати, что произойдет, если вы запустите код (в отличие от его отладки)? – Dialecticus 2010-12-05 01:02:20

+0

Привет, я пробовал сделать сборку релизов, и я все еще могу воспроизвести проблему, за исключением того, что, очевидно, у меня нет возможности ее отладки, но она срабатывает при тех же условиях, что и раньше. – Nobody 2010-12-05 01:09:40

ответ

1

Странные вещи, как это случилось со мной один раз в то время, я буду рекомендовать метод новичку ИТ. Перезагрузите компьютер. Среда CLI в .NET иногда становится очень затруднительной, поскольку мой код буквально висит внутри цикла foreach.

3

Handling Corrupted State Exceptions является то, что вы должны сделать в явном виде, вы можете поймать тех, добавив атрибут функции [HandledProcessCorruptedStateExceptions] ...

Пожалуйста, обратите внимание, что это необработанное с причиной, как неожиданные условия могут все еще быть вредными, если они игнорируются или рассматриваются в целом. В любом из этих сценариев нет гарантии, что то, что вы делаете, абсолютно безопасно! Только обрабатывайте его в сценарии, где просто прекращение процесса неприемлемо.