選擇何時使用結構化和非結構化例外處理 (Visual Basic)

結構化例外處理 (Structured exception handling) 就是使用包含例外狀況的控制項結構、隔離的程式碼區塊及篩選條件來建立例外處理機制。 這讓程式碼可以區別不同錯誤類型並且視情況作出反應。 在非結構化例外處理中,程式碼開端的 On Error 陳述式會處理所有例外狀況。

備註

結構化例外處理比非結構化例外處理具有更多用途、更穩固且更具彈性。 可以的話,請盡可能使用結構化例外處理。 然而,在下列情況下您可能會使用非結構化例外處理:

  • 您正在升級使用較早的 Visual Basic 版本所撰寫的應用程式。

  • 您正在開發應用程式的預備或草稿版本,不介意程式是否無法正常關閉。

  • 您可以明確預知什麼情況會造成例外狀況。

  • 期限快到了,您必須使用快捷的方法,也願意犠牲彈性以求快速完成。

  • 程式碼很瑣碎或非常短,您只需要測試會產生例外狀況的程式碼分支。

  • 您必須使用結構化例外處理不支援的 Resume Next 陳述式。

您無法在相同函式中合併結構化與非結構化例外處理。 如果您使用 On Error 陳述式,就不能在相同的函式中使用 Try...Catch 陳述式。

無論您選擇哪種方式來處理程式碼內的例外狀況,您必須採取步驟回頭檢查程式碼提出的假設狀況。 例如,當應用程式要求使用者輸入電話號碼時,下列假設開始生效:

  • 使用者會輸入數字而不是字元。

  • 數字具有特定格式。

  • 使用者不會輸入空字串。

  • 使用者只有一個電話號碼。

使用者輸入的內容有可能會違反上面的任何或所有假設。 健全的程式碼需要充分的例外處理,讓應用程式可以在這樣的違規情況下正常復原。

除非您可保證在任何情況下方法決不會擲回例外狀況,否則請使用可以提供資訊的例外處理。 例外處理應有意義。 除了說明發生問題外,例外處理產生的訊息還應指出發生問題的原因及位置。 只指出「已發生錯誤」而未提供足夠資訊的訊息只會讓使用者感到挫折。

請參閱

工作

例外處理疑難排解 (Visual Basic)

概念

錯誤類型 (Visual Basic)

Visual Basic 的結構化例外處理概觀

非結構化例外處理概觀 (Visual Basic)