Any runtime error generates an exception. Exceptions terminate the execution.
It is possible to catch an exception instead of terminating the execution:
Index
| Previous topic
| Next topic
auto e; try { ... some statements that cause a runtime error... } catch ( e ) { // e holds the exception information // it is an instance of the exception class }The try/catch blocks can be nested. If the current function has no try/catch blocks, the calling function will be examined, and so on, until we find a try/catch block or exit the main function. If no try/catch block is found, an unhandled exception is reported.
It is also possible to throw an exception explicitly. Any object can be thrown. For example:
throw 5;will throw value '5'.