diff options
Diffstat (limited to 'Examples/test-suite/d/li_std_except_runme.2.d')
-rw-r--r-- | Examples/test-suite/d/li_std_except_runme.2.d | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Examples/test-suite/d/li_std_except_runme.2.d b/Examples/test-suite/d/li_std_except_runme.2.d new file mode 100644 index 000000000..f2b4b672c --- /dev/null +++ b/Examples/test-suite/d/li_std_except_runme.2.d @@ -0,0 +1,34 @@ +module li_std_except_runme; + +import std.exception; +import std.stdio; +import li_std_except.Test; + +void main() { + with (new Test()) { + enforce(works!(Exception)(&throw_bad_exception)); + enforce(works!(Exception)(&throw_domain_error)); + enforce(works!(Exception)(&throw_exception)); + enforce(works!(Exception)(&throw_invalid_argument)); + enforce(works!(Exception)(&throw_length_error)); + enforce(works!(Exception)(&throw_logic_error)); + enforce(works!(Exception)(&throw_out_of_range)); + enforce(works!(Exception)(&throw_overflow_error)); + enforce(works!(Exception)(&throw_range_error)); + enforce(works!(Exception)(&throw_runtime_error)); + enforce(works!(Exception)(&throw_underflow_error)); + } +} + +bool works(alias E, F)(F f) { + try { + try { + f(); + } catch(E) { + return true; + } + } catch(Exception e) { + writefln( "Received wrong exception: %s", e.classinfo.name ); + } + return false; +} |