Try语句
示例:
- # 读取应包含数字的文本文件的前两行并尝试添加
- var
- f: File
- if open(f, "numbers.txt"):
- try:
- var a = readLine(f)
- var b = readLine(f)
- echo "sum: " & $(parseInt(a) + parseInt(b))
- except OverflowError:
- echo "overflow!"
- except ValueError:
- echo "could not convert string to integer"
- except IOError:
- echo "IO error!"
- except:
- echo "Unknown exception!"
- finally:
- close(f)
try 之后的语句按顺序执行,除非引发异常 e 。 如果 e 的异常类型匹配 except 子句中列出的任何类型,则执行相应的语句。 except 子句后面的语句称为 异常处理程序 。
如果存在未列出的异常,则执行空的 except 子句。 它类似于 if 语句中的 else 子句。
如果有一个 finally 子句,它总是在异常处理程序之后执行。
异常处理程序中的 consume 异常。 但是,异常处理程序可能会引发另一个异常。 如果未处理异常,则通过调用堆栈传播该异常。 这意味着程序不在 finally 子句中的其余部分通常不会被执行(如果发生异常)。