异常的层级

异常树被定义在system模块中。每个异常都继承自 system.Exception 。 表示程序错误的异常继承自 system.Defect (它是Exception的子类型),因为它们可以被映射到终止整个进程的操作中,因此将不能捕捉。 如果恐慌变为异常,则这些异常继承自 Defect 。

表示可捕获的其它运行时错误的异常从 system.CatchableError(它是 Exception 的子类) 继承。

  1. Exception
  2. |-- CatchableError
  3. | |-- IOError
  4. | | `-- EOFError
  5. | |-- OSError
  6. | |-- ResourceExhaustedError
  7. | `-- ValueError
  8. | `-- KeyError
  9. `-- Defect
  10. |-- AccessViolationDefect
  11. |-- ArithmeticDefect
  12. | |-- DivByZeroDefect
  13. | `-- OverflowDefect
  14. |-- AssertionDefect
  15. |-- DeadThreadDefect
  16. |-- FieldDefect
  17. |-- FloatingPointDefect
  18. | |-- FloatDivByZeroDefect
  19. | |-- FloatInvalidOpDefect
  20. | |-- FloatOverflowDefect
  21. | |-- FloatUnderflowDefect
  22. | `-- InexactDefect
  23. |-- IndexDefect
  24. |-- NilAccessDefect
  25. |-- ObjectAssignmentDefect
  26. |-- ObjectConversionDefect
  27. |-- OutOfMemoryDefect
  28. |-- RangeDefect
  29. |-- ReraiseDefect
  30. `-- StackOverflowDefect