| @@ -18,15 +18,14 @@ | |||
| // A Runtime...() throws a runtime_error (self) with it's description in what(). | |||
| // A Logic...() throws a logic_error (self) with it's description in what(). | |||
| #ifndef MNR_faults | |||
| #define MNR_faults | |||
| #pragma once | |||
| #include <stdexcept> | |||
| #include <cstdlib> | |||
| #include <iostream> | |||
| #include <string> | |||
| using namespace std; | |||
| namespace codedweller { | |||
| const int DefaultExitCode = EXIT_FAILURE; // Use this when no code is provided. | |||
| @@ -34,62 +33,62 @@ class AbortCheck { | |||
| private: | |||
| const string myDescription; // This is what I have to say. | |||
| const std::string myDescription; // This is what I have to say. | |||
| public: | |||
| AbortCheck(const string& Text) : myDescription(Text) {} // I am constructed with a description | |||
| AbortCheck(const std::string& Text) : myDescription(Text) {} // I am constructed with a description | |||
| void operator()(bool X) const { // Apply me like assert(exp) | |||
| if(false == X) { // If the expression is false then we | |||
| cerr << myDescription << endl; // failed the check so we display our | |||
| std::cerr << myDescription << std::endl; // failed the check so we display our | |||
| abort(); // description and abort. | |||
| } | |||
| } | |||
| const string Description() { return myDescription; } // You can ask for my Description. | |||
| const std::string Description() { return myDescription; } // You can ask for my Description. | |||
| }; | |||
| class AbortFault { // If this fault occurs we will abort. | |||
| private: | |||
| const string myDescription; // This is what I have to say. | |||
| const std::string myDescription; // This is what I have to say. | |||
| public: | |||
| AbortFault(const string& Text) : myDescription(Text) {} // I am constructed with a description | |||
| AbortFault(const std::string& Text) : myDescription(Text) {} // I am constructed with a description | |||
| void operator()(bool X) const { // Apply me like assert(! exp) | |||
| if(true == X) { // If the expression is true then we | |||
| cerr << myDescription << endl; // have a fault so we display our fault | |||
| std::cerr << myDescription << std::endl; // have a fault so we display our fault | |||
| abort(); // description and abort. | |||
| } | |||
| } | |||
| const string Description() const { return myDescription; } // You can ask for my Description. | |||
| const std::string Description() const { return myDescription; } // You can ask for my Description. | |||
| }; | |||
| class ExitCheck { // If this check is false we will exit. | |||
| private: | |||
| const string myDescription; // This is what I have to say. | |||
| const std::string myDescription; // This is what I have to say. | |||
| const int myExitCode; // This is what I send to exit(). | |||
| public: | |||
| ExitCheck(const string& Text, int Code=DefaultExitCode) : // I am constructed with a description | |||
| ExitCheck(const std::string& Text, int Code=DefaultExitCode) : // I am constructed with a description | |||
| myDescription(Text), myExitCode(Code) {} // and (optionlly) an exit code. | |||
| void operator()(bool X) const { // Apply me like assert(exp) | |||
| if(false == X) { // If the expression is false then we | |||
| cerr << myDescription << endl; // failed the check so we display our | |||
| std::cerr << myDescription << std::endl; // failed the check so we display our | |||
| exit(myExitCode); // description and exit with our code. | |||
| } | |||
| } | |||
| const string Description() { return myDescription; } // You can ask for my Description. | |||
| const std::string Description() { return myDescription; } // You can ask for my Description. | |||
| const int ExitCode() { return myExitCode; } // You can ask for my ExitCode. | |||
| }; | |||
| @@ -97,30 +96,30 @@ class ExitFault { | |||
| private: | |||
| const string myDescription; // This is what I have to say. | |||
| const std::string myDescription; // This is what I have to say. | |||
| const int myExitCode; // This is what I send to exit(). | |||
| public: | |||
| ExitFault(const string& Text, int Code=DefaultExitCode) : // I am constructed with a description | |||
| ExitFault(const std::string& Text, int Code=DefaultExitCode) : // I am constructed with a description | |||
| myDescription(Text), myExitCode(Code) {} // and (optionlly) an exit code. | |||
| void operator()(bool X) const { // Apply me like assert(! exp) | |||
| if(true == X) { // If the expression is true then we | |||
| cerr << myDescription << endl; // have a fault so we display our fault | |||
| std::cerr << myDescription << std::endl; // have a fault so we display our fault | |||
| exit(myExitCode); // description and exit with our code. | |||
| } | |||
| } | |||
| const string Description() const { return myDescription; } // You can ask for my Description. | |||
| const std::string Description() const { return myDescription; } // You can ask for my Description. | |||
| const int ExitCode() const { return myExitCode; } // You can ask for my ExitCode. | |||
| }; | |||
| class RuntimeCheck : public runtime_error { // Throw if this check fails. | |||
| class RuntimeCheck : public std::runtime_error { // Throw if this check fails. | |||
| public: | |||
| RuntimeCheck(const string& Text) : runtime_error(Text) {} // Construct me with a description. | |||
| RuntimeCheck(const std::string& Text) : std::runtime_error(Text) {} // Construct me with a description. | |||
| void operator()(bool X) const { // Apply me like assert(exp) | |||
| if(false == X) { // If the expression is false then we | |||
| @@ -129,11 +128,11 @@ class RuntimeCheck : public runtime_error { | |||
| } | |||
| }; | |||
| class RuntimeFault : public runtime_error { // Throw if we find this fault. | |||
| class RuntimeFault : public std::runtime_error { // Throw if we find this fault. | |||
| public: | |||
| RuntimeFault(const string& Text) : runtime_error(Text) {} // Construct me with a description. | |||
| RuntimeFault(const std::string& Text) : std::runtime_error(Text) {} // Construct me with a description. | |||
| void operator()(bool X) const { // Apply me like assert(exp) | |||
| if(true == X) { // If the expression is true then we | |||
| @@ -142,11 +141,11 @@ class RuntimeFault : public runtime_error { | |||
| } | |||
| }; | |||
| class LogicCheck : public logic_error { // Throw if this check fails. | |||
| class LogicCheck : public std::logic_error { // Throw if this check fails. | |||
| public: | |||
| LogicCheck(const string& Text) : logic_error(Text) {} // Construct me with a description. | |||
| LogicCheck(const std::string& Text) : std::logic_error(Text) {} // Construct me with a description. | |||
| void operator()(bool X) const { // Apply me like assert(exp) | |||
| if(false == X) { // If the expression is false then we | |||
| @@ -155,11 +154,11 @@ class LogicCheck : public logic_error { | |||
| } | |||
| }; | |||
| class LogicFault : public logic_error { // Throw if we find this fault. | |||
| class LogicFault : public std::logic_error { // Throw if we find this fault. | |||
| public: | |||
| LogicFault(const string& Text) : logic_error(Text) {} // Construct me with a description. | |||
| LogicFault(const std::string& Text) : std::logic_error(Text) {} // Construct me with a description. | |||
| void operator()(bool X) const { // Apply me like assert(exp) | |||
| if(true == X) { // If the expression is true then we | |||
| @@ -168,6 +167,4 @@ class LogicFault : public logic_error { | |||
| } | |||
| }; | |||
| #endif | |||
| // End Of Include MNR_faults Once Only ========================================= | |||
| } // End namespace codedweller | |||