klao@489: #include <iostream>
klao@489: 
ladanyi@542: #include <hugo/error.h>
klao@489: 
klao@489: using namespace hugo;
klao@489: using std::cout;
klao@489: using std::endl;
klao@489: 
klao@489: void faulty_fn() {
klao@489:   fault("This is a fault message");
klao@489: }
klao@489: 
klao@489: void exception_fn() {
klao@489:   throw Exception("This is a fn throwing excpt with some args: ") 
klao@489:     << 5 << ", " << 18;
klao@489: }
klao@489: 
klao@489: void unfinished_fn() {
klao@489:   FIXME("unfinished_fn() is unfinished!");
klao@489: }
klao@489: 
klao@489: 
klao@489: int main() {
klao@489:   bool no_errors = false;
klao@489: 
klao@489:   try {
klao@489:     cout << "Trying a faulty function\n";
klao@489:     faulty_fn();
klao@489:     no_errors = true;
klao@489:     cout << "FAILED!\n";
klao@489:   }
klao@489:   catch(const Exception &e) {
klao@489:     cout << "E: " << e.what() << endl;
klao@489:   }
klao@489: 
klao@489:   try {
klao@489:     cout << "Trying a function throwing Exception\n";
klao@489:     exception_fn();
klao@489:     no_errors = true;
klao@489:     cout << "FAILED!\n";
klao@489:   }
klao@489:   catch(const Exception &e) {
klao@489:     cout << "E: " << e.what() << endl;
klao@489:   }
klao@489: 
klao@489:   try {
klao@489:     cout << "Trying a function using FIXME\n";
klao@489:     unfinished_fn();
klao@489:     no_errors = true;
klao@489:     cout << "FAILED!\n";
klao@489:   }
klao@489:   catch(const Exception &e) {
klao@489:     cout << "E: " << e.what() << endl;
klao@489:   }
klao@489: 
klao@489:   return no_errors ? 1 : 0;
klao@489: }