[英]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.