|
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 |
|
|---|
| 11 | using namespace std;
|
|---|
| 12 |
|
|---|
| 13 | bool _my_assert::always_throw = false;
|
|---|
| 14 |
|
|---|
| 15 | bool _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.