It is still a bit rough around some edges, particularly with regard to multi-threading and operator overloading, and there are some documentation bits missing, but it should be fine for basic use. The test-suite should build and run fine with the current versions of DMD, LDC and Tango (at least) on Linux x86_64 and Mac OS X 10.6. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12299 626c5289-ae23-0410-ae9c-e8d60b6d4f22
34 lines
943 B
D
34 lines
943 B
D
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;
|
|
}
|