2012-03-19 5 views
0

Это хорошая идея, чтобы генерировать исключения, такие как «ArgumentException» в ASP? Я крашу несколько статей, и я знаю исключения, которые я бросаю, чтобы перейти к методу Page_Error. После этого исполнение застряло здесь навсегда. Как продолжить выполнение после Page_Error?C#/ASP - Исключение исключений

Или я не использую бросок и сделать что-то вроде этого:

person.name = "blablabla"; 
if (person.NameValidatingError) Response.Write ("Ooops"); 
+0

Исключения не имеют смысла, если нет кого-то, кто их ловит – BlackBear

+0

Что такое '.NameValidatingError'? Это логическое значение, которое вы устанавливаете на объекте? – Origin

+0

@up это просто пример. – zgnilec

ответ

0

Вы должны иметь ошибки Страница для всего приложения и передавать все свое исключение на эту страницу.

+0

Но я не хочу 1 страницу за ошибку, мне нужно помещать сообщения об ошибках внутри содержимого html без переадресации и т. Д. – zgnilec

1

Если вы ожидаете, что аргумент будет соответствовать каким-либо правилам проверки, а переданный в аргументе не соответствует им (и вы не сможете его восстановить), рекомендуется добавить ArgumentException, объяснив, почему он был отклонен ,

Вы должны в page_error перейти на страницу с ошибкой.

0

Вместо того, чтобы проверять переменную после установки чего-либо, вы должны инкапсулировать ее в блок try/catch, если знаете, что это может вызвать ошибку.

Как это:

try 
    person.name = "blablabla" 
catch ex as YourExceptionType 
    messagebox.show("There was an error in the foobar") 
end try 

... continue code here 
-1

Если метод может обрабатывать ошибки самостоятельно без ввода кода в нерабочем состоянии, то нет никакой необходимости бросить исключение.

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

+0

Любая причина для downvote? – mbeckish

0

Не имеет значения, говорим ли мы о C# или Asp.Net, но дело в том, что это хорошая практика исключения. В общем случае вы должны исключать исключение только тогда, когда это строго необходимо, поскольку бросание исключений может привести к производительности (иногда даже скрывает трассировку стека). Еще один аспект заключается в том, что исключение - это то, чего вы не могли предвидеть, возможно, когда вы кодировали эту функцию, но не то, что вы уже знаете, что это может произойти/избегать. Я предлагаю вам избегать бросать исключение как можно больше, это требование в вашем домене, вы можете создать страницу с ошибкой для перенаправления на каждый раз, когда вы получаете неуправляемое исключение.

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