发生错误时发出信号. 此信号可以被 Try-Catch 语句捕获.
Throw , Expression
[v1.1.05+]: 如果省略, 抛出一个附带默认消息的异常对象.
否则, 指定一个存储在 Catch 的 OutputVar 的值.
由于这个参数是一个表达式, 因此以下示例都是有效的:
throw 3 throw "literal string" throw MyVar throw i + 1 throw { what: "Custom error", file: A_LineFile, line: A_LineNumber } ; 抛出一个对象
此参数总是为表达式, 所以变量引用不应该括在百分号中, 除非执行展开双重引用.
[v1.1.05+]: 如果省略, 则抛出带默认消息的 exception 对象.
创建一个具有属性的对象, 这也是与运行时错误创建的异常所通用的:
Exception(Message , What, Extra)
此对象包含以下属性:
如果省略 What , 则默认为当前函数或子程序的名称. 否则, 它可以为字符串或到调用堆栈顶部的负偏移. 例如, 使用值 -1 来设置 Exception.What
为当前函数或子线程名称, 且设置 Exception.Line
和 Exception.File
为调用它的行号和文件. 不过, 如果这个脚本已经被编译或者偏移是无效的, What 将转换为一个字符串.
Message 和 Extra 被转换为字符串. 如果一个异常抛出而且没有被获取, 它们将在错误日志中显示.
try SomeFunction() catch e MsgBox % "Error in " e.What ", which was called at line " e.Line SomeFunction() { throw Exception("Fail", -1) }
Try, Catch, Finally, OnError()
请参阅 Try.