View source code
Display the source code in rt/deh_win32.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module rt.deh_win32

Implementation of exception handling support routines for Win32.

Functions

NameDescription
_d_eh_swapContext(newContext) Switch out inflightExceptionList on fiber context switches.
_d_exception_filter(eptrs, retval, exceptionObject) Exception filter for use in _try.._except block surrounding call to Dmain()
_d_framehandler(exceptionRecord, frame, context, dispatcherContext) The frame handler, this is called for each frame that has been registered in the OS except_list.
_d_local_unwind(handler_table, frame, stop_index, collisionHandler) Call finally blocks in the current stack frame until stop_index. This is roughly equivalent to local_unwind() for C in \src\win32\ehsup.c
_d_local_unwind2() external version of the unwinder This is used for 'goto' or 'return', to run any finally blocks which were skipped.
_d_monitor_epilog(x, y, h)
_d_monitor_handler(exceptionRecord, frame, context, dispatcherContext) The frame handler, this is called for each frame that has been registered in the OS except_list.
_d_monitor_prolog(x, y, h)
_d_throwc(h) The compiler converts: throw h; into a call to: d_throwc(h);
_d_translate_se_to_d_exception(exceptionRecord, context) Converts a Windows Structured Exception code to a D Throwable Object.
skipCollateralExceptions(n) Find the first non-collateral exception in the list. If the last entry in the list has the EXCEPTION_COLLATERAL bit set, it means that this fragment will collide with the top exception in the inflightException list.
throwImpl(h) Throw a D instance of Throwable.

Authors

Walter Bright

License

Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)