blob: f2b4b672c2c1bd3edc293b9950e7779f17951313 [file] [log] [blame]
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;
}