C#/ ASP - 抛出异常

时间:2012-03-19 17:10:09

标签: c# .net error-handling

在ASP中抛出类似“ArgumentException”的异常是一个好主意吗?我重写一些文章,我知道我抛出的异常转到Page_Error方法。在此之后,执行永远停留在这里。如何在Page_Error之后继续执行?

或者我应该不使用throw并制作这样的东西:

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

5 个答案:

答案 0 :(得分:1)

如果您希望参数符合某种验证规则并且传入的参数不符合它们(并且您无法恢复),那么抛出ArgumentException解释原因是个好主意它被拒绝了。

您应该在page_error中重定向到错误页面。

答案 1 :(得分:0)

您的整个应用程序应该有一个错误页面,并将所有异常转移到该页面。

答案 2 :(得分: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

答案 3 :(得分:0)

如果我们谈论C#或Asp.Net并不重要,但问题是如果它是一个好的做法抛出异常。 一般情况下,只有在严格需要时才会抛出异常,因为异常抛出会导致性能(有时甚至会隐藏堆栈跟踪)。 另一个方面是,例外情况是你无法预见的,当你编写这个功能但你不知道它可能发生的事情/避免发生 我建议你尽量避免抛出异常然后如果你的域中有要求,你可以创建一个错误页面,以便在每次得到非托管异常时重定向。

答案 4 :(得分:-1)

如果方法可以自己处理错误而不将代码置于无效状态,那么就不需要抛出异常。

否则,该方法应抛出异常,将其留给调用者来决定它是否知道如何处理异常,或者让它保持未被捕获。

相关问题