【中低階級】-例外處理(try..catch)

【中低階級】-例外處理(try..catch)

更新於 發佈於 閱讀時間約 4 分鐘

  程式在執行的過程中難免會遇到意外的狀況發生,這時該怎麼辦呢?現實生活中我們可能就會去保保險,那麼程式怎麼辦?有一個例外處理try...catch可以幫我們解決這個問題,甚至還可以使用throw可以丟出例外,例外處理部分是可以透過程式的規劃來了解是哪邊出問題的哦!怎麼說呢?我們來看一下例子:

·try...catch基本使用:

try
{
  //原本程式要執行的內容
  //例如:label1.Text=”程式執行內容”;
}
catch
{
  //當try裡面的內容遇到任何意外就會執行這裡的內容(ex:記憶體不足、檔案路徑錯誤、找不到值...等等)
}

·多了finally 使用:

try
{
  //程式內容敘述
}
catch
{
  //意外狀況發生時所執行的程式
}
finally
{
  //無論有無意外狀況發生都一定會執行的程式
}

這邊的finally出現就表示有可能會出現這樣的情形:

1.try...catch...finally

2.try...finally

也就是說try後面跟著的不是catch就是finally。


·那麼例外處理的catch用法也還有可以針對不同的例外個別去做處理

像是:

try
{
  ...
}
catch(OutOfMemoryException)
{
  //記憶體不足時的例外狀況
}
catch(IndexOutOfRangeException)
{
  //使用陣列或集合以外的索引值來做存取項目的例外狀況
}

當然例外狀況不只有這兩個還有很多,這邊就先列舉幾個我認為比較常用的

例外類型

例外類型

當然還有很多其他的例外類型,可以在程式中找尋像下面這張圖一樣可以找到我們想要的類型哦!

程式中找尋

程式中找尋

·丟出例外throw

若有特殊例外狀況想要自訂例外時可以使用throw用法指定例外類型時也可以使用throw用法。

(1)指令例外類型用法

throw指定例外類型

throw指定例外類型

throw指定例外類型-執行結果

throw指定例外類型-執行結果

(2)自訂例外類型用法

Step1:先建立自訂例外類型的類別,由於會繼承ISerializable,因此最上面要多新增using System.Runtime.Serialization

Step2:主程式使用throw new自訂例外類型的類別名稱

直接來看例子:

自訂義例外_使用類別

自訂義例外_使用類別

自訂義例外的類別_新增using

自訂義例外的類別_新增using

自訂義例外_主程式

自訂義例外_主程式

由於遇到throw時程式會自動跳出,後面的程式就不會執行了,我們就一一來看一下他們執行狀況有沒有跟我們所自訂的顯示內容一樣。

自訂義例外_執行結果(1)

自訂義例外_執行結果(1)

自訂義例外_執行結果(2)

自訂義例外_執行結果(2)

自訂義例外_執行結果(3)

自訂義例外_執行結果(3)

自訂義例外_執行結果(4)

自訂義例外_執行結果(4)

可以看到跳出的例外狀況的小視窗,裡面的內容也就會是我們自訂義會顯示的內容。當沒有使用try...catch方法時程式就會像這個例子一樣會中斷程式哦!

所以說當例外狀況產生時有try...catch這個好方法協助我們抓出程式的意外狀況、錯誤情形,好讓我們可以快速知道錯誤點在哪邊呢!


參考資料:
1.Day25-C#-凡事都可能有例外~出其不意就是人森阿(´_ゝ`)(例外處理try-catch)
2.C# 例外處理(Exception Handling)
3.[C#] 自訂例外處理 (Exception)

avatar-img
橙果杏的沙龍
23會員
43內容數
Hello~ Welcome to my blog~❤ 這邊會分享我在程式這條道路中的學習與成長, 過程中從而了解自己的不足,再學習。 希望透過分享的方式, 也讓正在學習程式的夥伴們一起學習, 我們一起加油吧~ 「彼此都會成為彼此之間的影響力」(´,,•ω•,,)♡ ❣
留言
avatar-img
留言分享你的想法!
橙果杏的沙龍 的其他內容
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它
一、什麼是WinSocket? 也就是大家常說的WinSock全名為Windows Sockets API (WSA),它會透過TCP/IP通訊協定來做網路的通訊,會用在Windows操作系統上來開發網路應用的API(應用程式介面)   二、WinSocket用在哪裡?   Socket可以
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
前面已經安裝好IIS後,並且也新建站台了,那麼接下來這篇就會分享如何使用它