# Catch [v1.1.04+]

指定在执行 try 语句发生异常时执行的代码.

    Catch , OutputVar
        Statement

    Catch , OutputVar
    {
        Statements
    }

## 参数

OutputVar

  (可选) 用来存储异常值的变量名称.

Statement(s)

  发生异常时执行的命令或表达式.

## 备注

每次使用 catch 都必须附属于(与之关联) 它上面的 try 语句. 除非使用区块来改变这种行为, 否则 catch 总是附属于在它上面且离它最近的还没有被认领的 try 语句.

可以使用 One True Brace(OTB) 风格. 例如:

    try {
        ...
    } catch e {
        ...
    }

## 运行时错误

try-catch 语句同样可以用来处理运行时错误. 有两类的运行时错误: 一类是设置 ErrorLevel 的运行时错误; 一类是在显示错误消息后会让当前线程退出的运行时错误. 加载时错误无法处理, 因为它们在 try 执行前已经发生了. 为了能够向后兼容(及在一些时候的方便), 运行时错误仅在在执行 try 区块时才会抛出异常. 大部分命令支持 try-catch; 不过当命令执行成功时 ErrorLevel 仍然被置为 0.

存储在 OutputVar(如果存在) 中的值是一个 exception 对象.

## 相关

Try, Throw, Finally, 区块, OnError()

## 示例

请参阅 Try.

dftg