diff options
Diffstat (limited to 'libtests/qexc.cc')
-rw-r--r-- | libtests/qexc.cc | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/libtests/qexc.cc b/libtests/qexc.cc index 87e56820..6a89f68d 100644 --- a/libtests/qexc.cc +++ b/libtests/qexc.cc @@ -4,20 +4,6 @@ #include <errno.h> #include <stdlib.h> -void do_terminate() -{ - try - { - throw; - } - catch (std::exception& e) - { - std::cerr << "uncaught exception: " << e.what() << std::endl; - exit(3); - } - exit(4); -} - void f(int n) { switch (n) @@ -33,19 +19,11 @@ void f(int n) case 2: throw QEXC::System("doing something", EINVAL); break; - - case 3: - { - int a = -1; - new char[a]; - } - break; } } int main(int argc, char* argv[]) { - std::set_terminate(do_terminate); if (argc != 2) { std::cerr << "usage: qexc n" << std::endl; @@ -62,5 +40,14 @@ int main(int argc, char* argv[]) std::cerr << "what: " << e.what() << std::endl; exit(2); } + catch (std::exception& e) + { + std::cerr << "uncaught exception: " << e.what() << std::endl; + exit(3); + } + catch (...) + { + exit(4); + } return 0; } |