throw new Exception


throw new Exception(String, Exception)函數

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

MSDN:Exception (String, Exception) 使用指定錯誤信息和對做爲此異常緣由的內部異常的引用來初始化 Exception 類的新實例。

    在發現異常之後做一下記錄異常信息而後在拋出異常,讓客戶知道有問題了,以便通知技術人員。由於程序異常之後就崩潰的機會很大,先記錄問題下來再崩潰才行。測試

捕獲異常之後,再拋出一個新的異常。再拋出新異常以前,你能夠對前面捕獲的異常作一些操做,好比記錄日誌、獲取異常信息而後寫到新異常中

int num = Convert.ToInt32(textBox1.Text);
try
{
    if (num == 0)
    {
        throw new ArgumentNullException("出現零!");
    }
    if (num == 1)
    {
        throw new Exception("出現壹!");
    }
}
catch (ArgumentNullException ex)
{
    MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
    catch是用來處理錯誤,就是發生了錯誤時,會執行catch部分.注意:是"發生了錯誤時".
可是, 在沒有發生錯誤時, 你本身想引起錯誤怎麼辦呢? 可使用throw語句來手工引起一個錯誤.

    好比上面這段程序, 你先畫一個文本框,textBox1,一個按鈕button1, 若是把這段代碼放到button1的click事件裏. 
    若是文本框中文本是0,引起一種錯誤,文本框文本是1時又引起另外一種錯誤,並可採用不一樣的處理辦法.日誌

我認爲catch塊裏一般對附異常有三種辦法:一種辦法是,什麼也不作,catch語句裏只有空語句;另外一種辦法是,用messagebox之類的通知異常;還有一種辦法是,throw 一個new的異常。
    用哪一種辦法取決於你但願如何處理這個異常。
    若是你想直接通知用戶,用messagebox之類的就行了
    若是你想由調用這個函數的程序來處理,能夠throw一個new
    若是你但願你的程序出了「這個」異常還正常運行,就像什麼也沒發生同樣,你能夠空語句。
    總之try catch是有意義和必要的,但你的程序如何catch就是你本身的想法嘍。
    通常來講沒有必要明確的throw出一個異常,異常應該是由於程序自己運行的問題而產生的,可是有兩種狀況:
    1. 測試的時候,好比說你不能真的模擬一個內存耗盡這個異常吧,那麼只好明確地throw一個了。事件

2. 自定義的異常須要明確的throw出來,由於知足這個條件每每是咱們本身制定的規則不知足了。內存


相關文章
相關標籤/搜索