2012-05-10 2 views
-1

У меня есть проект C# asp.net, где один ascx наследуется от базовой ascx. В этой базе ascx я хотел бы поместить метод page_error, который регистрирует ошибку.Поймать все ошибки на уровне страницы, не нарушая страницу

Я хотел бы, что если что-то в производном классе сломал, скажем, нулевой ссылочный исключение, он не будет представлять пользователю экран ошибки. Фактически я хочу, чтобы каждая строка кода действовала так, как будто она инкапсулирована внутри собственной попытки catch, поэтому, если это исключение null ref произошло, оно просто зарегистрирует ошибку для этой одной строки, а затем перейдет к следующей строке и продолжит работу.

Возможно ли это, и как я могу реализовать это?

ответ

3

Нет, это невозможно. Если исключение UnhandledException неизбежно вызывается, ваше событие Page_Error будет получать исключение, и обычное выполнение страницы прерывается. В общем, я думаю, что вы пытаетесь сделать это BAD. Я бы не пошел по этому маршруту.

+0

Я согласен. Особенно с примером ссылки Null. Исключительные исключения ссылок почти всегда являются ошибками программиста. Исправьте ошибки! – asawyer

+0

+1 это очень плохо. Напоминает мне классический ASP 'on error resume next', который вызвал всевозможные путаницы. –

+0

Невозможно не означает плохой практики. :) У меня есть страница с множеством независимых частей, которые могут потерпеть неудачу, но не хотят прерывать поток других частей, которые не полагаются на них. Вместо того, чтобы бросить кучу попыток поймать кучу методов, мне просто интересно об этом маршруте. Я думал, что это будет круто, но я полагаю, что я просто подберу и выбираю, какие методы требуют регистрации ошибок. Спасибо за ответ. – JMD

Смежные вопросы