PageRenderTime 51ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/d/li_std_except_runme.2.d

#
D | 34 lines | 31 code | 3 blank | 0 comment | 0 complexity | dd08a051c3227023ffd91a1d1e0299fe MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. module li_std_except_runme;
  2. import std.exception;
  3. import std.stdio;
  4. import li_std_except.Test;
  5. void main() {
  6. with (new Test()) {
  7. enforce(works!(Exception)(&throw_bad_exception));
  8. enforce(works!(Exception)(&throw_domain_error));
  9. enforce(works!(Exception)(&throw_exception));
  10. enforce(works!(Exception)(&throw_invalid_argument));
  11. enforce(works!(Exception)(&throw_length_error));
  12. enforce(works!(Exception)(&throw_logic_error));
  13. enforce(works!(Exception)(&throw_out_of_range));
  14. enforce(works!(Exception)(&throw_overflow_error));
  15. enforce(works!(Exception)(&throw_range_error));
  16. enforce(works!(Exception)(&throw_runtime_error));
  17. enforce(works!(Exception)(&throw_underflow_error));
  18. }
  19. }
  20. bool works(alias E, F)(F f) {
  21. try {
  22. try {
  23. f();
  24. } catch(E) {
  25. return true;
  26. }
  27. } catch(Exception e) {
  28. writefln( "Received wrong exception: %s", e.classinfo.name );
  29. }
  30. return false;
  31. }