Как программно перехватить номер строки, в которой произошла ошибка?
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как программно перехватить номер строки, в... Expand / Collapse
Автор
Сообщение
21.04.2007 14:16
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.10.2008 12:14
Сообщ.: 693, Visits: 7 081
Когда в программе происходит ошибка, VS выводит сообщение о ней на желтом экране, а также номер строки и прочие параметры места, где она произошла.

А можно ли программно получить то же самое?

Спасибо!
Евгений Боуден

Сообщ. #912681
23.04.2007 10:44
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Для этого есть механизм исключений. В веб приложении их можно перехватывать локально внутри конкретного блока кода с помощью Try/Catch или на уровне приложения внутри события Application_Error. Я описывал один из методов такой обработки в своем блоге.
Сообщ. #912706
23.04.2007 10:55
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Хочу дополнить. Номер строки можно узнать из трассировки стека (свойство StackTrace) объекта-исключения. Надо только учитывать что он будет так только когда сборка откомпилирована в режиме отладки.
Сообщ. #912707
23.04.2007 11:24
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.10.2008 12:14
Сообщ.: 693, Visits: 7 081
А при компилляции в режиме Release, номер строки  получить безнадежно?

Спасибо!
Евгений Боуден
Сообщ. #912708
23.04.2007 11:49
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Конечно. Откуда среде исполнения знать что данный код соответствует такой-то строке в таком-то файле если отладочной информации нет? Ведь одна строка кода на VB.NET/С# может транслироваться в длинный кусок IL-кода.
Сообщ. #912709
23.04.2007 16:56
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 19.10.2008 12:14
Сообщ.: 693, Visits: 7 081
Так я и знал!

А жаль. :(

Спасибо!
Евгений Боуден

Сообщ. #912722
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Alexey Spirin

Время GMT +3:00, Сейчас 12:45