C#快速入門教程(18)—— 異常處理
一般情況下,人們總是想像程式碼能夠和自己想的一樣正確執行,但由於各種原因,實際執行時還是會出現各種各樣的問題;在C#程式碼中,我們可以異常(exception)捕捉機制進行處理,並對不同的異常情況做出合理的處理。
C#中的異常處理使用了try...catch...finally語句結構,其基本語法如下。
try
{
<語句塊1>
}
catch (Exception ex)
{
<語句塊2>
}
catch
{
<語句塊3>
}
finally
{
<語句塊4>
}
在這個結構中,<語句塊1>是軟體的業務程式碼,但可能會出現問題,此時,可以使用一系列的catch語句塊進行捕捉,catch關鍵字後如果使用一對圓括號定義了異常型別,就可以精確的捕捉到此型別的異常,從而進行相應的處理;如果無法確定異常型別,可以使用Exception物件獲取異常資訊,以便進一步處理;如果不需要獲取異常資訊,可以直接使用catch語句進行相應的處理,請注意,不指定異常型別的catch語句只能有一個,而且只能出現在所有有異常型別的catch後面;最終,無論<語句塊1>是否出現異常,都會執行finally語句塊中的內容。整個try的基本執行邏輯如下圖所示。
接下來,我們就來看幾種try...catch...finally語句結構的變形和具體應用。
下面的程式碼,我們看一看如何捕捉異常並顯示其提示資訊。
static void Main(string[] args)
{
try
{
int x = 10;
int y = 0;
Console.WriteLine(x / y);
}
catch(Exception ex)
{
Console.Write("出現異常:");
Console.WriteLine(ex.Message);
}
}
程式碼執行結果如下圖所示。
下面的程式碼演示了finally語句塊的使用。
static void Main(string[] args)
{
try
{
int x = 10;
int y = 0;
Console.WriteLine(x / y);
Console.WriteLine("正確執行");
}
catch
{
Console.WriteLine("出現異常");
}
finally
{
Console.WriteLine("結束");
}
}
程式碼執行結果如下圖所示。
大家可以修改y的值來觀察執行結果。
專案開發中,可以根據需要統一處理異常並做記錄,這樣就可以在使用過程中有效跟蹤常見錯誤,並對軟體做出相應的修改;比如,在上一課中使用CLog類就可以根據需要進行修改,以適合的方式記錄軟體執行過程中的錯誤,並做分析、改進等工作。
CHY軟體小屋原創作品!
相關文章
- Java入門教程十一(異常處理)Java
- Python 快速教程(進階篇08):異常處理Python
- C#自定義異常 統一異常處理C#
- 詳解C#異常處理C#
- 瞭解下C# 異常處理C#
- java入門 -- Java I/O(四) 異常處理Java
- C#實驗4 異常處理C#
- Java 異常處理專題,從入門到精通Java
- Python爬蟲入門(5):URLError異常處理Python爬蟲Error
- Flask框架從入門到精通之異常處理(十)Flask框架
- Python入門學習之異常處理機制Python
- 異常篇——異常處理
- 《C#快速入門教程》目錄C#
- C#快速入門教程(16)—— 介面C#
- C#快速入門教程(6)——方法C#
- C#中的異常處理機制C#
- 異常處理
- Python入門學習 之 永久儲存、異常處理Python
- C#快速入門教程(26)—— 繪圖C#繪圖
- C#快速入門教程(8)——整數C#
- C#快速入門教程(15)—— 繼承C#繼承
- C#快速入門教程(21)—— 泛型C#泛型
- 異常-throws的方式處理異常
- 異常處理與異常函式函式
- Python基礎入門(7)- Python異常處理機制Python
- 【Java入門提高篇】Day16 Java異常處理(上)Java
- JavaScript 異常處理JavaScript
- ThinkPHP 異常處理PHP
- React 異常處理React
- 08、異常處理
- JAVA 異常處理Java
- JAVA異常處理Java
- Abp 異常處理
- oracle異常處理Oracle
- PowerShell 異常處理
- plsql異常處理SQL
- Swift 異常處理Swift
- JS異常處理JS