diff options
-rw-r--r-- | changelog.md | 2 | ||||
-rw-r--r-- | doc/manual.rst | 3 | ||||
-rw-r--r-- | lib/system.nim | 8 |
3 files changed, 7 insertions, 6 deletions
diff --git a/changelog.md b/changelog.md index 5a28fc7ff..f48f7e024 100644 --- a/changelog.md +++ b/changelog.md @@ -178,7 +178,7 @@ of managing memory. - The exception hierarchy was slightly reworked, ``SystemError`` was renamed to - ``Error`` and is the new base class for any exception that is guaranteed to + ``CatchableError`` and is the new base class for any exception that is guaranteed to be catchable. This change should have minimal impact on most existing Nim code. diff --git a/doc/manual.rst b/doc/manual.rst index d60d58fe7..ea2b74a75 100644 --- a/doc/manual.rst +++ b/doc/manual.rst @@ -3974,7 +3974,8 @@ Every exception inherits from ``system.Exception``. Exceptions that indicate programming bugs inherit from ``system.Defect`` (which is a subtype of ``Exception``) and are stricly speaking not catchable as they can also be mapped to an operation that terminates the whole process. Exceptions that indicate any other runtime error -that can be caught inherit from ``system.Error`` (which is a subtype of ``Exception``). +that can be caught inherit from ``system.CatchableError`` +(which is a subtype of ``Exception``). Imported exceptions diff --git a/lib/system.nim b/lib/system.nim index 531363eb1..b92dd58d6 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -489,18 +489,18 @@ type ## but that are strictly uncatchable as they can also be mapped to ## a ``quit`` / ``trap`` / ``exit`` operation. - Error* = object of Exception ## \ + CatchableError* = object of Exception ## \ ## Abstract class for all exceptions that are catchable. - IOError* = object of Error ## \ + IOError* = object of CatchableError ## \ ## Raised if an IO error occurred. EOFError* = object of IOError ## \ ## Raised if an IO "end of file" error occurred. - OSError* = object of Error ## \ + OSError* = object of CatchableError ## \ ## Raised if an operating system service failed. errorCode*: int32 ## OS-defined error code describing this error. LibraryError* = object of OSError ## \ ## Raised if a dynamic library could not be loaded. - ResourceExhaustedError* = object of Error ## \ + ResourceExhaustedError* = object of CatchableError ## \ ## Raised if a resource request could not be fulfilled. ArithmeticError* = object of Defect ## \ ## Raised if any kind of arithmetic error occurred. |