[C#] 使用try-catch捕捉與處理錯誤

閱讀時間約 6 分鐘

在程式設計中,錯誤處理是一個不可或缺的部分。C#提供了強大的錯誤處理機制,讓我們能夠更有效地管理和處理程式執行中可能出現的問題。本篇文章將帶你深入了解如何在C#中捕捉與處理錯誤,確保你的程式在遇到問題時能夠優雅地回應。

使用try-catch語句

在C#中,我們使用try-catch語句來捕捉和處理錯誤。try區塊內包含可能會拋出例外的程式碼,而catch區塊則定義了處理特定例外的程式碼。讓我們透過一個範例來了解如何使用try-catch:

using System;

class Program
{
static void Main()
{
try
{
// 可能會拋出例外的程式碼
int numerator = 10;
int denominator = 0;
int result = numerator / denominator;

Console.WriteLine("結果: " + result);
}
catch (DivideByZeroException ex)
{
Console.WriteLine("捕捉到除以零的錯誤: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("捕捉到其他錯誤: " + ex.Message);
}
finally
{
Console.WriteLine("不論是否有錯誤,這個區塊都會執行。");
}

Console.WriteLine("程式繼續執行。");
}
}

在這個範例中,我們使用了try-catch語句來捕捉可能拋出的除以零的錯誤。如果發生這樣的錯誤,程式就會進入相對應的catch區塊。最後,不論是否有錯誤,finally區塊都會執行。

多個catch區塊

我們可以根據需要在try-catch語句中使用多個catch區塊。每個catch區塊可以捕捉不同類型的例外,這樣可以更精確地處理錯誤情況。以下是一個範例:

using System;

class Program
{
static void Main()
{
try
{
int[] numbers = { 1, 2, 3 };
Console.WriteLine(numbers[5]); // 這會拋出IndexOutOfRangeException
}
catch (IndexOutOfRangeException ex)
{
Console.WriteLine("捕捉到索引超出範圍的錯誤: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("捕捉到其他錯誤: " + ex.Message);
}
}
}

在這個範例中,我們捕捉了IndexOutOfRangeException以及一般的Exception。藉由這種方式,我們能夠根據不同的錯誤情況提供更具體的處理方式。

使用finally區塊

除了try和catch,我們還可以使用finally區塊。finally區塊中的程式碼將在try-catch語句執行完畢後無論是否有錯誤都會執行。這是一個很好的地方來釋放資源或進行清理工作。以下是一個範例:

using System;

class Program
{
static void Main()
{
try
{
// 一些可能拋出例外的程式碼
}
catch (Exception ex)
{
// 處理錯誤
}
finally
{
// 執行清理工作
}
}
}

自訂例外

除了捕捉系統定義的例外,我們還可以建立自訂例外,以便更好地表達特定的錯誤情況。以下是建立自訂例外的範例:

using System;

class MyCustomException : Exception
{
public MyCustomException(string message) : base(message)
{
}
}

class Program
{
static void Main()
{
try
{
throw new MyCustomException("這是一個自訂的例外。");
}
catch (MyCustomException ex)
{
Console.WriteLine("捕捉到自訂例外: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("捕捉到其他錯誤: " + ex.Message);
}
}
}


在C#中,使用try-catch語句能夠幫助我們更好地捕捉、處理和回應程式執行中可能出現的錯誤。透過適當的錯誤處理機制,我們能夠提升程式的穩定性和可靠性,讓使用者有更好的使用體驗。記住根據不同情況使用不同的catch區塊,並在finally區塊進行必要的清理工作,這將有助於你建立更優質的程式。

avatar-img
67會員
120內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
程式輕鬆玩 的其他內容
在這份教學文章中,我們將一步步示範如何使用C#程式語言和ZXing套件生成一個不顯示資訊的CODE128條碼。這將有助於您在自己的應用程式中生成純條碼圖片,而無需顯示任何附加的文字資訊。
在 C# 中,List 是一個常見且實用的集合類型,可以儲存一組元素並進行各種操作。本篇教學將帶你深入了解如何操作 List 以及進行降冪排序。我們將使用一系列範例程式碼來說明這些概念。
JSON(JavaScript Object Notation)是一種常用的數據交換格式,用於在不同的應用程序之間傳遞結構化數據。在C#中,我們可以使用Newtonsoft.Json模組來處理JSON資料。
Line Notify 是 LINE 提供的一個服務,讓您可以透過 API 傳送訊息到您的 LINE 好友或群組。在這篇教學文章中,我們將介紹如何使用 C# 透過 Line Notify 服務傳送訊息,同時確保連線是使用 TLS 1.2以上加密。
參數化查詢是一種將參數值傳遞給SQL語句的技術,這些參數值不會被直接解釋為SQL語法。這樣可以防止惡意用戶通過在輸入中插入惡意的SQL語法來攻擊資料庫。參數化查詢的一個主要優點是它能夠提高安全性,同時也能夠幫助資料庫優化查詢。
在C#程式設計中,處理字串操作是一個常見的任務。有時候,我們可能需要去除字串中不需要的空格,特別是在處理使用者輸入、讀取檔案或處理資料庫查詢結果時。在這篇教學中,我們將學習如何使用C#內建的方法來去除字串頭尾的空格。
在這份教學文章中,我們將一步步示範如何使用C#程式語言和ZXing套件生成一個不顯示資訊的CODE128條碼。這將有助於您在自己的應用程式中生成純條碼圖片,而無需顯示任何附加的文字資訊。
在 C# 中,List 是一個常見且實用的集合類型,可以儲存一組元素並進行各種操作。本篇教學將帶你深入了解如何操作 List 以及進行降冪排序。我們將使用一系列範例程式碼來說明這些概念。
JSON(JavaScript Object Notation)是一種常用的數據交換格式,用於在不同的應用程序之間傳遞結構化數據。在C#中,我們可以使用Newtonsoft.Json模組來處理JSON資料。
Line Notify 是 LINE 提供的一個服務,讓您可以透過 API 傳送訊息到您的 LINE 好友或群組。在這篇教學文章中,我們將介紹如何使用 C# 透過 Line Notify 服務傳送訊息,同時確保連線是使用 TLS 1.2以上加密。
參數化查詢是一種將參數值傳遞給SQL語句的技術,這些參數值不會被直接解釋為SQL語法。這樣可以防止惡意用戶通過在輸入中插入惡意的SQL語法來攻擊資料庫。參數化查詢的一個主要優點是它能夠提高安全性,同時也能夠幫助資料庫優化查詢。
在C#程式設計中,處理字串操作是一個常見的任務。有時候,我們可能需要去除字串中不需要的空格,特別是在處理使用者輸入、讀取檔案或處理資料庫查詢結果時。在這篇教學中,我們將學習如何使用C#內建的方法來去除字串頭尾的空格。
你可能也想看
Google News 追蹤
Thumbnail
本章介紹了 PHP 中的例外處理技術,包括其語法、常見異常類型以及如何主動觸發異常訊息。我們還學習了如何自定義異常類別,以便更好地管理和處理不同類型的異常情況。通過使用例外處理,可以提高程式碼的穩定性、可讀性和可維護性,並提供更優雅的錯誤信息處理機制。
Thumbnail
本章節旨在介紹Java程式語言中的「例外處理」概念。透過各個小節,讀者將學習到何謂例外處理、為何要使用它、如何在Java中實現例外處理,以及如何正確地捕獲和處理各種類型的異常。此外,本章節還提供了如何主動觸發異常,以及如何創建和使用自定義異常的實例。
Thumbnail
這篇文章主要講解Kotlin的例外處理。內容包括例外處理的目的、`try-catch` 和 `finally` 的用法、常見的異常類型,以及如何定義和觸發自定義的異常訊息。
Thumbnail
本章節為Swift程式語言的異常處理介紹,說明了為何需要進行異常處理以及如何進行異常處理。提供了使用do、try、catch和throw關鍵字進行異常處理的基本語法並展示了其在實際程式中的應用。同時也說明了Swift中的一些常見異常類型,並且教導了如何主動觸發異常訊息和定義自己的異常類型。
Thumbnail
本章節的目的是介紹在TypeScript中如何進行例外處理。涵蓋了例外處理的重要性、語法、常見異常類型以及如何主動觸發異常訊息及用戶自定義異常訊息。為讀者提供了全面而深入的了解,以提高程式的可靠性、提供更好的反饋、增加程式的容錯性以及改善程式的可讀性。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
本章節介紹C#的「例外處理」,包括使用try-catch語法處理錯誤,finally關鍵字的使用,以及如何主動引發和自定義異常。
Thumbnail
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
Thumbnail
本文介紹Python程式設計中處理異常的try, except, else, finally語句,並提供程式範例來更深刻理解使用方法。
Thumbnail
本章介紹了 PHP 中的例外處理技術,包括其語法、常見異常類型以及如何主動觸發異常訊息。我們還學習了如何自定義異常類別,以便更好地管理和處理不同類型的異常情況。通過使用例外處理,可以提高程式碼的穩定性、可讀性和可維護性,並提供更優雅的錯誤信息處理機制。
Thumbnail
本章節旨在介紹Java程式語言中的「例外處理」概念。透過各個小節,讀者將學習到何謂例外處理、為何要使用它、如何在Java中實現例外處理,以及如何正確地捕獲和處理各種類型的異常。此外,本章節還提供了如何主動觸發異常,以及如何創建和使用自定義異常的實例。
Thumbnail
這篇文章主要講解Kotlin的例外處理。內容包括例外處理的目的、`try-catch` 和 `finally` 的用法、常見的異常類型,以及如何定義和觸發自定義的異常訊息。
Thumbnail
本章節為Swift程式語言的異常處理介紹,說明了為何需要進行異常處理以及如何進行異常處理。提供了使用do、try、catch和throw關鍵字進行異常處理的基本語法並展示了其在實際程式中的應用。同時也說明了Swift中的一些常見異常類型,並且教導了如何主動觸發異常訊息和定義自己的異常類型。
Thumbnail
本章節的目的是介紹在TypeScript中如何進行例外處理。涵蓋了例外處理的重要性、語法、常見異常類型以及如何主動觸發異常訊息及用戶自定義異常訊息。為讀者提供了全面而深入的了解,以提高程式的可靠性、提供更好的反饋、增加程式的容錯性以及改善程式的可讀性。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
本章節介紹C#的「例外處理」,包括使用try-catch語法處理錯誤,finally關鍵字的使用,以及如何主動引發和自定義異常。
Thumbnail
例外處理是Python中的重要概念,用於控制並處理程序異常,防止程序崩潰和數據損失。它包括try, except, else和finally等語法結構,可用於對特定錯誤進行處理,或主動觸發和自定義異常。
Thumbnail
在程式世界裡,if 條件句是我們的好朋友,幫我們做各種決策。如果不注意可能會讓我們掉進小陷阱。文中透過幾個例子,在使用 if 時可能會遇到的一些常見問題,像是不必要的 if、過於複雜的條件、忘了用嚴格比較,還有嵌套太深的 if。透過這篇文章,你將學到如何避免這些小錯誤,寫出更乾淨、更有效率的程式碼。
Thumbnail
本文介紹Python程式設計中處理異常的try, except, else, finally語句,並提供程式範例來更深刻理解使用方法。