klao@1067: #include klao@1067: #include klao@1067: klao@1067: #define LEMON_ASSERT_ABORT 0 klao@1067: #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@1067: e.set_file(fn); klao@1067: e.set_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@1067: catch(exception &e) { klao@1067: cerr << "Exception caught: " << endl; klao@1067: cerr << e.what() << endl; klao@1067: } klao@1067: klao@1067: try { klao@1067: fail_assert(); klao@1067: } klao@1067: catch(exception &e) { klao@1067: cerr << "Exception caught: " << endl; klao@1067: cerr << e.what() << endl; klao@1067: } klao@1067: 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@1067: #define LEMON_ASSERT_HANDLER ::lemon::assert_fail_throw klao@1067: klao@1067: #include klao@1067: klao@1067: void fail_assert() { klao@1067: LEMON_ASSERT(2*2==5, "Marson vagyunk"); klao@1067: } klao@1067: klao@1067: