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出來,由於知足這個條件每每是咱們本身制定的規則不知足了。內存