排除从句
在 except 子句中,可以使用以下语法访问当前异常:
- try:
- # ...
- except IOError as e:
- # Now use "e"
- echo "I/O error: " & e.msg
或者,可以使用 getCurrentException 来检索已经引发的异常:
- try:
- # ...
- except IOError:
- let e = getCurrentException()
- # 现在使用"e"
注意 getCurrentException 总是返回一个 ref Exception 类型。
如果需要一个正确类型的变量(在上面的例子中,IOError
),必须明确地转换它:
- try:
- # ...
- except IOError:
- let e = (ref IOError)(getCurrentException())
- # "e"现在是合适的类型
但是,这很少需要。 最常见的情况是从 e 中提取错误消息,对于这种情况,使用 getCurrentExceptionMsg 就足够了:
- try:
- # ...
- except:
- echo getCurrentExceptionMsg()