簡體   English   中英

C#/ ASP-引發異常

[英]C# / ASP - Exceptions throwing

在ASP中拋出諸如“ ArgumentException”之類的異常是一個好主意嗎? 我加了一些文章,而且我知道拋出的異常將轉到Page_Error方法。 之后,執行將永遠停留在這里。 Page_Error之后如何繼續執行?

還是我不應該使用throw進行如下操作:

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

如果您希望參數符合某種驗證規則,而傳入的參數不符合驗證規則(並且您無法恢復),則最好拋出ArgumentException解釋其被拒絕的原因。

您應該在page_error重定向到錯誤頁面。

您應該為整個應用程序提供一個錯誤頁面,並將所有異常轉移到該頁面。

如果知道會引發錯誤,則可以將其封裝在try / catch塊中,而不是在設置某些內容后檢查變量。

像這樣:

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

... continue code here

我們在談論C#還是Asp.Net都沒有關系,但問題是是否拋出異常是一種好習慣。 通常,只有在嚴格需要時才應拋出異常,因為異常拋出會導致性能下降(有時甚至會隱藏堆棧跟蹤)。 另一個方面是,當您對該功能進行編碼時,您可能無法預見到異常,但是您已經知道它不會發生/避免發生的事情我建議您盡量避免拋出異常,如果有必要的話在您的域中,您可能會創建一個錯誤頁面,以便在每次收到非托管異常時重定向到該頁面。

如果該方法可以自行處理錯誤而無需將代碼置於無效狀態,則無需引發異常。

否則,該方法應引發異常,由調用者決定是否知道如何處理該異常,或者將其保留。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM