source: molecuilder/src/Helpers/Assert.cpp@ 43ed42

Last change on this file since 43ed42 was 43ed42, checked in by Tillmann Crueger <crueger@…>, 16 years ago

Added custom Assert makro that allows ignoring asserts

  • Property mode set to 100644
File size: 1.1 KB
Line 
1/*
2 * Assert.cpp
3 *
4 * Created on: Mar 18, 2010
5 * Author: crueger
6 */
7
8#include "Helpers/Assert.hpp"
9#include <iostream>
10
11using namespace std;
12
13bool _my_assert::always_throw = false;
14
15bool _my_assert::check(const bool res,
16 const char* condition,
17 const char* message,
18 const char* filename,
19 const int line,
20 bool& ignore)
21{
22 if(!res){
23 cout << "Assertion " << condition << " failed in file " << filename << " at line " << line << endl;
24 cout << "Assertion Message: " << message << std::endl;
25 if(always_throw){
26 throw AssertException(filename,line);
27 }
28 while(true){
29 cout << "Please choose: (a)bbort, (t)hrow execption, (i)gnore, al(w)ays ignore" << endl;
30 char choice;
31 cin >> choice;
32 switch(choice){
33 case 'a':
34 return true;
35 break;
36 case 't':
37 throw AssertException(filename,line);
38 break;
39 case 'w':
40 ignore = true;
41 // fallthrough
42 case 'i':
43 return false;
44 break;
45 }
46 }
47 }
48 return false;
49}
Note: See TracBrowser for help on using the repository browser.