C# 中的異常捕捉(try)和異常處理(catch)
阿新 • • 發佈:2019-02-08
為了捕捉異常,程式碼要放到一個 try 塊中(try 是 C# 關鍵字)。程式碼執行時它會嘗試執行 try 塊內的所有語句。如果沒有任何語句產生一個異常,這些語句將一個接一個執行,直到全部完成。然而,一旦出現異常,就會跳出 try 塊,並進入一個 catch 處理程式中執行。
在try塊後緊接著寫一個或多個 catch 處理程式(catch 也是 C# 關鍵字),用它們處理任何發生的錯誤。每個 catch 處理程式都負責捕捉並處理一種特定型別的異常,你可以在一個 try 塊後面寫多個 catch 處理程式。try 塊中的任何一個語句造成錯誤,“執行時”(runtime)都會生成並丟擲一個異常。然後“執行時”將檢查 try 塊之後的 catch 處理程式,將控制權移交給一個匹配的處理程式。
catch 處理程式結束之後,程式將從處理程式之後的第一個語句繼續執行。
下圖是使用了 try 和 catch 的一個程式:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TryAndCatch { class Program { static void Main(string[] args) { try { int a; string b; Console.WriteLine("請輸入一個整數: "); b = Console.ReadLine(); // ReadLine() 獲取到的是 string 型別的資料 a = int.Parse(b); // int.Parse 方法將 string 型別轉換 int 型別 } catch (Exception ex) // 這是一個常規的 catch 處理程式,能捕捉一切異常 { Console.WriteLine(ex); } } } }
由於 a 是 int 型別,所以要求輸入的資料也要是 int 型別。此處輸入 1.0,型別不符合,所以 try 塊在此處會捕捉到一個 FornatException ( 格式異常 ),然後 catch 塊會處理這個異常,在這裡具體的做法就是輸出錯誤資訊。