BlitzMax/語言/異常
外觀
BlitzMax 提供了一種處理執行時錯誤的機制,稱為異常處理
異常實際上只是一個物件。您可以使用 Throw 命令和 Try / Catch 塊來丟擲和捕獲異常。以下是一個簡單的示例
Function ExTest() Throw "Bingo!" End Function Try ExTest() Catch ex:Object Print ex.ToString() End Try
丟擲異常會導致程式跳轉到最近的 Catch 塊。您可以提供多個 catch 塊來捕獲不同型別的異常。如果沒有找到適合異常的 Catch 塊,則程式將跳轉到下一個最近的 Catch 塊。如果找不到可以處理該異常的 catch 塊,則程式將結束。
BlitzMax 有幾種內建的異常型別,它們都擴充套件了 TBlitzException 型別。這些是
| 異常 | 原因 |
| TNullMethodException | 當程式試圖呼叫抽象方法時丟擲。 |
| TNullFunctionException | 當程式試圖呼叫空函式時丟擲。 |
| TNullObjectException | 當程式試圖訪問空物件時丟擲(僅在除錯模式下丟擲)。 |
| TArrayBoundsException | 當程式試圖訪問陣列邊界之外的陣列元素時丟擲(僅在除錯模式下丟擲)。 |
| TRuntimeException | 由 RuntimeError 或 Assert 命令丟擲。 |