Throw

AutoHotkey

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])

创建 Exception 对象.

如果省略 What, 则它默认为当前函数或子程序的名称. 否则它可以为字符串或到调用堆栈顶部的负偏移. 例如, 使用值 -1 来设置 Exception.What 为当前函数或子线程名称, 且设置 Exception.Line 为调用它的行号.

try
    BadlyCodedFunc()
catch e
    MsgBox % "Error in " e.What ", which was called at line " e.Line 

BadlyCodedFunc() {
    throw Exception("Fail", -1)
}

相关

Try, Catch, Finally

示例

请参阅 Try.