選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C# 異常 - Try..Catch


C# 異常

執行 C# 程式碼時,可能會發生各種錯誤:程式設計師的編碼錯誤、輸入錯誤導致的錯誤,或其他不可預見的事件。

當發生錯誤時,C# 通常會停止並生成一條錯誤訊息。這個技術術語是:C# 將**丟擲(throw)**一個**異常**(丟擲一個錯誤)。


C# try 和 catch

try 語句允許您定義一個程式碼塊,在執行時對其進行錯誤測試。

catch 語句允許您定義一個程式碼塊,在 `try` 塊中發生錯誤時執行。

trycatch 關鍵字成對出現

語法

try 
{
  //  Block of code to try
}
catch (Exception e)
{
  //  Block of code to handle errors
}

考慮以下示例,我們建立了一個包含三個整數的陣列

這將生成一個錯誤,因為 myNumbers[10] 不存在。

int[] myNumbers = {1, 2, 3};
Console.WriteLine(myNumbers[10]); // error!

錯誤訊息將類似如下內容

System.IndexOutOfRangeException: '索引超出了陣列的界限。'

如果發生錯誤,我們可以使用 try...catch 來捕獲錯誤並執行一些程式碼來處理它。

在以下示例中,我們在 catch 塊中使用變數(e)以及內建的 Message 屬性,該屬性會輸出一條描述異常的訊息

示例

try
{
  int[] myNumbers = {1, 2, 3};
  Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
  Console.WriteLine(e.Message);
}

輸出將是:

索引超出了陣列的界限。
自己動手試一試 »

您也可以輸出自己的錯誤訊息

示例

try
{
  int[] myNumbers = {1, 2, 3};
  Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
  Console.WriteLine("Something went wrong.");
}

輸出將是:

發生了錯誤。
自己動手試一試 »


Finally

finally 語句允許您在 try...catch 之後執行程式碼,而不管結果如何。

示例

try
{
  int[] myNumbers = {1, 2, 3};
  Console.WriteLine(myNumbers[10]);
}
catch (Exception e)
{
  Console.WriteLine("Something went wrong.");
}
finally
{
  Console.WriteLine("The 'try catch' is finished.");
}

輸出將是:

發生了錯誤。
The 'try catch' is finished.
自己動手試一試 »

throw 關鍵字

throw 語句允許您建立自定義錯誤。

throw 語句與一個**異常類**一起使用。C# 中有許多可用的異常類:ArithmeticExceptionFileNotFoundException IndexOutOfRangeExceptionTimeOutException 等等。

示例

static void checkAge(int age)
{
  if (age < 18)
  {
    throw new ArithmeticException("Access denied - You must be at least 18 years old.");
  }
  else
  {
    Console.WriteLine("Access granted - You are old enough!");
  }
}

static void Main(string[] args)
{
  checkAge(15);
}

程式中顯示的錯誤訊息將是

System.ArithmeticException: '訪問被拒絕 - 您必須至少 18 歲。'

如果 age 是 20,您將**不會**收到異常。

示例

checkAge(20);

輸出將是:

Access granted - You are old enough!
自己動手試一試 »

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援