• 排除从句

    排除从句

    except 子句中,可以使用以下语法访问当前异常:

    1. try:
    2. # ...
    3. except IOError as e:
    4. # Now use "e"
    5. echo "I/O error: " & e.msg

    或者,可以使用 getCurrentException 来检索已经引发的异常:

    1. try:
    2. # ...
    3. except IOError:
    4. let e = getCurrentException()
    5. # 现在使用"e"

    注意 getCurrentException 总是返回一个 ref Exception 类型。

    如果需要一个正确类型的变量(在上面的例子中,IOError ),必须明确地转换它:

    1. try:
    2. # ...
    3. except IOError:
    4. let e = (ref IOError)(getCurrentException())
    5. # "e"现在是合适的类型

    但是,这很少需要。 最常见的情况是从 e 中提取错误消息,对于这种情况,使用 getCurrentExceptionMsg 就足够了:

    1. try:
    2. # ...
    3. except:
    4. echo getCurrentExceptionMsg()