Adds some documentation related to exceptions.
This commit is contained in:
parent
d0bd5d5cc3
commit
acc394ca23
2 changed files with 31 additions and 0 deletions
|
|
@ -2843,6 +2843,23 @@ in an implicit try block:
|
||||||
finally: close(f)
|
finally: close(f)
|
||||||
...
|
...
|
||||||
|
|
||||||
|
The ``except`` statement has a limitation in this form: you can't specify the
|
||||||
|
type of the exception, you have to catch everything. Also, if you want to use
|
||||||
|
both ``finally`` and ``except`` you need to reverse the usual sequence of the
|
||||||
|
statements. Example:
|
||||||
|
|
||||||
|
.. code-block:: nimrod
|
||||||
|
proc test() =
|
||||||
|
raise newException(E_base, "Hey ho")
|
||||||
|
|
||||||
|
proc tester() =
|
||||||
|
finally: echo "3. Finally block"
|
||||||
|
except: echo "2. Except block"
|
||||||
|
echo "1. Pre exception"
|
||||||
|
test()
|
||||||
|
echo "4. Post exception"
|
||||||
|
# --> 1, 2, 3 is printed, 4 is never reached
|
||||||
|
|
||||||
|
|
||||||
Raise statement
|
Raise statement
|
||||||
---------------
|
---------------
|
||||||
|
|
|
||||||
14
doc/tut2.txt
14
doc/tut2.txt
|
|
@ -433,6 +433,20 @@ handled, it is propagated through the call stack. This means that often
|
||||||
the rest of the procedure - that is not within a ``finally`` clause -
|
the rest of the procedure - that is not within a ``finally`` clause -
|
||||||
is not executed (if an exception occurs).
|
is not executed (if an exception occurs).
|
||||||
|
|
||||||
|
If you need to *access* the actual exception object or message inside an
|
||||||
|
``except`` branch you can use the getCurrentException() and
|
||||||
|
getCurrentExceptionMsg() procs from the `system <system.html>`_ module.
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: nimrod
|
||||||
|
try:
|
||||||
|
doSomethingHere()
|
||||||
|
except:
|
||||||
|
let
|
||||||
|
e = getCurrentException()
|
||||||
|
msg = getCurrentExceptionMsg()
|
||||||
|
echo "Got exception ", repr(e), " with message ", msg
|
||||||
|
|
||||||
|
|
||||||
Exception hierarchy
|
Exception hierarchy
|
||||||
-------------------
|
-------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue