Throw [v1.1.04+]
发出错误发生时的信号. 此信号可以被 try-catch 语句捕获.
Throw [, Expression]
参数
- Expression
要保存到 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])
创建一个包含下列属性的对象, 跟运行时错误创建的异常一样:
- Message: 错误消息或 ErrorLevel 值.
- What: 错误发生时正在或即将执行的命令或函数的名称.
- Extra: 错误的额外信息.
- File: 包含发生错误的语句的脚本文件的完整路径.
- Line: 发生错误的语句行号.
如果省略 What , 则它默认为当前函数或子程序的名称. 否则它可以为字符串或到调用堆栈顶部的负偏移. 例如, 使用值 -1 来设置 Exception.What
为当前函数或子线程名称, 且设置 Exception.Line
为调用它的行号. 不过, 如果这个脚本已经被编译或者偏移是无效的, What 将转换为一个字符串.
Message 和 Extra 被转换为字符串. 如果一个异常抛出而且没有被获取,它们将在错误日志中显示.
try BadlyCodedFunc() catch e MsgBox % "Error in " e.What ", which was called at line " e.Line BadlyCodedFunc() { throw Exception("Fail", -1) }
相关
示例
请参阅 Try.