klao@1067: #include klao@1067: #include klao@1067: klao@1067: #define LEMON_ASSERT_ABORT 0 klao@1122: #include klao@1067: klao@1067: using namespace std; klao@1067: klao@1067: void parse_line() { klao@1067: throw lemon::DataFormatError("Syntax error"); klao@1067: } klao@1067: klao@1067: void parse_file(string fn) { klao@1067: try { klao@1067: parse_line(); klao@1067: } klao@1067: catch(lemon::DataFormatError &e) { klao@1120: e.file(fn); klao@1120: e.line(5); klao@1067: throw; klao@1067: } klao@1067: } klao@1067: klao@1067: void fail_assert(); klao@1067: klao@1067: int main() { klao@1067: try { klao@1067: parse_file("input.txt"); klao@1067: } klao@1120: catch(lemon::Exception &e) { klao@1120: cerr << "Exception '" << e.exceptionName() klao@1120: << "' caught: " << endl; klao@1120: cerr << e.what() << endl; klao@1120: } klao@1067: catch(exception &e) { klao@1067: cerr << "Exception caught: " << endl; klao@1067: cerr << e.what() << endl; klao@1067: } klao@1067: klao@1067: try { klao@1120: throw lemon::LogicError(); klao@1120: } klao@1120: catch(lemon::Exception &e) { klao@1120: cerr << "Exception '" << e.exceptionName() klao@1120: << "' caught: " << endl; klao@1120: cerr << e.what() << endl; klao@1120: } klao@1120: klao@1120: try { klao@1067: fail_assert(); klao@1067: } klao@1120: catch(lemon::Exception &e) { klao@1120: cerr << "Exception '" << e.exceptionName() klao@1120: << "' caught: " << endl; klao@1120: cerr << e.what() << endl; klao@1120: } klao@1067: catch(exception &e) { klao@1067: cerr << "Exception caught: " << endl; klao@1067: cerr << e.what() << endl; klao@1067: } klao@1067: klao@1120: cerr << endl; klao@1120: klao@1067: // assert(1==0); klao@1067: LEMON_ASSERT(1==0, "Ellentmondas"); klao@1067: LEMON_FIXME("Nincs kesz"); klao@1067: } klao@1067: klao@1067: #undef LEMON_ASSERT_HANDLER klao@1120: #define LEMON_ASSERT_EXCEPTION klao@1067: klao@1122: #include klao@1067: klao@1067: void fail_assert() { klao@1067: LEMON_ASSERT(2*2==5, "Marson vagyunk"); klao@1067: }