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 命令抛出。 |