blob: f2b4b672c2c1bd3edc293b9950e7779f17951313 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
}
|