熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

catch塊中throw new Exception的意義

2013-11-13 09:39:59  來源: .NET編程 

  throw new Exception(String Exception)


throw new Exception(String)
throw是明確地拋出異常

MSDN:Exception (String Exception) 使用指定錯誤信息和對作為此異常原因的內部異常的引用來初始化 Exception 類的新實例

    在發現異常以後作一下記錄異常信息然後在拋出異常讓客戶知道有問題了以便通知技術人員因為程序異常以後就崩潰的機會很大先記錄問題下來再崩潰才行
捕獲異常以後再拋出一個新的異常再拋出新異常之前你可以對前面捕獲的異常做一些操作比如記錄日志獲取異常信息然後寫到新異常中

int num = ConvertToInt(textBoxText);
try
{
    if (num == )
    {
        throw new ArgumentNullException(出現零!);
    }
    if (num == )
    {
        throw new Exception(出現壹!);
    }
}
catch (ArgumentNullException ex)
{
    MessageBoxShow(exMessage);
}
catch (Exception ex)
{
    MessageBoxShow(exMessage);
}
    catch是用來處理錯誤就是發生了錯誤時會執行catch部分注意:是發生了錯誤時
但是 在沒有發生錯誤時 你自己想引發錯誤怎麼辦呢? 可以使用throw語句來手工引發一個錯誤

    比如上面這段程序 你先畫一個文本框textBox一個按鈕button 如果把這段代碼放到button的click事件裡 
    如果文本框中文本是引發一種錯誤文本框文本是時又引發另一種錯誤並可采用不同的處理辦法
我認為catch塊裡通常對附異常有三種辦法一種辦法是什麼也不做catch語句裡只有空語句;另一種辦法是用messagebox之類的通知異常;還有一種辦法是throw 一個new的異常
    用哪種辦法取決於你希望如何處理這個異常
    如果你想直接通知用戶用messagebox之類的就好了
    如果你想由調用這個函數的程序來處理可以throw一個new
    如果你希望你的程序出了這個異常還正常運行就像什麼也沒發生一樣你可以空語句
    總之try catch是有意義和必要的但你的程序如何catch就是你自己的想法喽
    一般來說沒有必要明確的throw出一個異常異常應該是因為程序本身運行的問題而產生的但是有兩種情況
     測試的時候比如說你不能真的模擬一個內存耗盡這個異常吧那麼只好明確地throw一個了
 自定義的異常需要明確的throw出來因為滿足這個條件往往是我們自己制定的規則不滿足了
From:http://tw.wingwit.com/Article/program/net/201311/11283.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.