1. 程式人生 > >C# 中的異常捕捉(try)和異常處理(catch)

C# 中的異常捕捉(try)和異常處理(catch)

        為了捕捉異常,程式碼要放到一個 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 塊會處理這個異常,在這裡具體的做法就是輸出錯誤資訊。