summaryrefslogtreecommitdiff
path: root/Examples/test-suite/d/li_std_except_runme.2.d
diff options
context:
space:
mode:
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.d34
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;
+}