# 异常处理

本文档介绍了您如何在OpenEX处理运行时异常

有关异常类型的详细信息,请前往对照表


# 接住异常

在OpenEX中,你需要使用try catch语句来处理运行时发生的异常

该语句更新于Pro v0.1.7在此之前,OpenEX无法在用户脚本中处理运行时异常

以下是如何定义一套try catch语句的例子

try {
    /* 可能发生异常的代码 */
}catch 异常类型 信息变量名,调用栈结构变量名 {
    /* 异常处理代码 */
}
1
2
3
4
5
  • 异常类型: 参考对照表 中异常类型名
  • 信息变量名: STRING 类型的变量, 存储了异常被抛出的信息
  • 调用栈结构变量名: ARRAY 类型的数组, 存储调用栈信息

提示

一个标准处理ILLEGAL_ACCESS_EXCEPTION异常的代码实例

try{
    /* 假设该段代码一定会发生ILLEGAL_ACCESS_EXCEPTION异常 
    * 异常信息与调用栈结构以实际为准
    */
}catch ILLEGAL_ACCESS_EXCEPTION message , stack {
    system.print(message);
    system.print(stack);
}
1
2
3
4
5
6
7
8

您会在终端看到以下输出

Not found arg.
[debug.main, loader.boot]
1
2

# 抛出异常

OpenEX也支持您主动在用户脚本中抛出异常,您需要throw语句来抛出您的异常

以下是throw语句的标准格式

throw 异常类型 : 异常信息 ;
1
  • 异常类型: 参考对照表 中异常类型名
  • 异常信息: 您要显示的异常信息

异常信息可以是一段表达式,也可以是字符串组合 不能为数组类型
但最终都会被转换成STRING类型的信息

提示

一个标准抛出ILLEGAL_ACCESS_EXCEPTION异常的代码实例

throw ILLEGAL_ACCESS_EXCEPTION:"Not found arg" + (1+3);
1

您会在终端看到以下输出

ScriptRuntimeError: Not found arg4
	ThreadName: main
	FileName: debug.exf
	Exception: ILLEGAL_ACCESS_EXCEPTION
	Edition: OpenEX Pro
	Version: v0.1.7
Call stack struct:
    at <debug.exf>: debug.main(User Script)
	at <debug.exf>: loader.boot(Script Loader)
1
2
3
4
5
6
7
8
9