Try语句

示例:

  1. # 读取应包含数字的文本文件的前两行并尝试添加
  2. var
  3. f: File
  4. if open(f, "numbers.txt"):
  5. try:
  6. var a = readLine(f)
  7. var b = readLine(f)
  8. echo "sum: " & $(parseInt(a) + parseInt(b))
  9. except OverflowError:
  10. echo "overflow!"
  11. except ValueError:
  12. echo "could not convert string to integer"
  13. except IOError:
  14. echo "IO error!"
  15. except:
  16. echo "Unknown exception!"
  17. finally:
  18. close(f)

try 之后的语句按顺序执行,除非引发异常 e 。 如果 e 的异常类型匹配 except 子句中列出的任何类型,则执行相应的语句。 except 子句后面的语句称为 异常处理程序 。

如果存在未列出的异常,则执行空的 except 子句。 它类似于 if 语句中的 else 子句。

如果有一个 finally 子句,它总是在异常处理程序之后执行。

异常处理程序中的 consume 异常。 但是,异常处理程序可能会引发另一个异常。 如果未处理异常,则通过调用堆栈传播该异常。 这意味着程序不在 finally 子句中的其余部分通常不会被执行(如果发生异常)。