C#--try catch(異常處理)
阿新 • • 發佈:2019-01-28
異常處理:try catch;throw:專門扔異常。
程式碼放到try中,程式碼執行時會執行try中語句。如果沒有異常,這些語句將執行下去,直到執行結束;如果一旦出現異常則跳出try,去執行catch中的內容(可以多個catch 同時存在)。
try
{
//有可能出現錯誤的程式碼
}
catch
{
//如果try中程式碼出現異常,則進去catch中
}
finally
{
// 最後執行的程式碼
}
//在try中獲取並使用資源,在catch中處理異常情況,並在finally中釋放資源。
例如:
try
{
Console.WriteLine("輸入數字");
int num = Convert.ToInt32(Console.ReadLine());
}
catch (Exception ex)
{
Console.WriteLine (ex.Message);
}
Console.ReadKey();
如果輸入不是數字的則會出現異常,但是這樣寫會顯示輸入格式不正確,不會報異常。
栗子:
int []nums={3,4,5};
try
{
nums[3] = 90;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
//throw; //這個是顯示出異樣的
}
finally
{
Console.WriteLine("不論是否出現異常都會走這裡");
}
Console.ReadKey();
顯示:索引超出陣列界限,不論是否出現異常都會走這裡,但是沒有報錯。
總結:
- 傳統的作物表示方式:錯誤碼。舉例: 需要知道不同錯誤碼的含義,如果不能吃力錯誤碼,則程式可能陷入不可以預知的錯誤。
- 錯誤碼的缺點:不處理則很難發現,每次處理則很麻煩;難以看出錯誤的原因;容易使得程式進入不確定狀態。
- try catch。Exception ex異常也是物件。
- Exception 類主要屬性:Message、StackTrace
- 發生異常後程序預設就退出了,try程式碼塊中的後續程式碼不會被執行。catch以後的程式碼則會繼續執行。
- 扔出自己的異常,扔:throw,抓住:catch。