我有一個懷疑Try
Catch
塊。 如果我在Try
塊中遇到錯誤,那麼它將按照規則重定向到Catch
塊。因此,我可以將我的標籤可見= true設置爲catch catch。嘗試catch塊顯示錯誤消息
即lblError.visible=true;
它是正確的,因爲每個編碼標準?我是新開發的。
我有一個懷疑Try
Catch
塊。 如果我在Try
塊中遇到錯誤,那麼它將按照規則重定向到Catch
塊。因此,我可以將我的標籤可見= true設置爲catch catch。嘗試catch塊顯示錯誤消息
即lblError.visible=true;
它是正確的,因爲每個編碼標準?我是新開發的。
例如,您可以在catch塊中將輸入元素的可見性設置爲false,並顯示錯誤面板。
沒錯,那有什麼不對?也許你對visibling和設置catch塊中的lblError感到不舒服,因爲try..catch可能出現在你的代碼中的很多地方,如果是這樣,你可以將這兩行包含在函數中並從每個catch塊中調用它。
您還可以從catch塊中拋出異常,並在會話級別或應用程序級別的一個位置處理它們,並重定向到一個默認錯誤頁面,您可以在其中獲得最後發生的錯誤並按照它顯示用戶友好的消息。
您也可以在web.config中啓用CustomErrors部分,並在會話中發生的任何錯誤中重定向到一個特定頁面。
try
{
//statements;
}
catch (Exception ex)
{
ShowError(ex);
}
void ShowError(Exception ex)
{
//Log or Email error first
LogOrEmailError(ex);
// you can write user friendly message based on the exception provided or a generic error message.
lblError.Visible = true;
lblError.Text = GetUserFriendlyErrorMessage(ex); // or throw; if you are planing to handle error in global.ascx or through CustomErrors in web.config
}
你很可能不想向用戶顯示實際的錯誤信息。它很可能會超過他們的頭。創建你自己的友好版本將是首選。 –
@Josh真,人們不會試圖向用戶顯示錯誤信息! – Writwick
是真的,我在代碼中爲解釋它寫了註釋。 –
是的非常。您可以在catch塊中編寫普通編碼行。
是的,多數民衆贊成我想聽...實際上,我很困惑,寫在代碼捕捉或不。 –
@FrankJames:事實上,我們使用這種技術(在catch塊中編寫)來調用一個記錄器方法/函數,當有異常拋出時它會在數據庫中插入一些值。這樣我們就可以跟蹤錯誤和異常情況。 –
捕獲塊使開發人員能夠恢復由try塊中拋出的錯誤所造成的損害。
因此,如果錯誤出現在try塊中,您可以寫下任何應該運行的代碼。即錯誤日誌記錄
是的,您可以在catch塊內寫入任何代碼,即使在方法中使用return
也是如此。一刻,您必須使用finaly{}
塊來釋放在拋出異常的方法中使用的任何資源(例如,您使用數據庫連接)。
感謝所有我得到了我的答案。 –
不要忘記接受答案。 –