跳转到内容

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 RuntimeErrorAssert 命令抛出。
华夏公益教科书