Exception.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <sstream>
00030
00031 #include "Exception.hpp"
00032
00033
00034 Exception::Exception(const std::string& rMessage,
00035 const std::string& rFilename, unsigned lineNumber)
00036 : mShortMessage(rMessage)
00037 {
00038 std::stringstream line_number_stream;
00039 line_number_stream << lineNumber;
00040 mMessage = std::string("\nChaste error: ") + rFilename + ":" + line_number_stream.str() + ": " + mShortMessage;
00046
00047
00048 }
00049
00050 std::string Exception::GetMessage() const
00051 {
00052 return mMessage;
00053 }
00054
00055 std::string Exception::GetShortMessage() const
00056 {
00057 return mShortMessage;
00058 }
00059
00060 std::string Exception::CheckShortMessage(std::string expected) const
00061 {
00062 std::string error;
00063 if (mShortMessage != expected && mShortMessage != "Another process threw an exception; bailing out.")
00064 {
00065 error = "Incorrect exception message thrown: expected (" + expected + "); got (" + mShortMessage + ").";
00066 }
00067 return error;
00068 }
00069
00070 std::string Exception::CheckShortMessageContains(std::string expected) const
00071 {
00072 std::string error;
00073 if (mShortMessage.find(expected) == std::string::npos && mShortMessage != "Another process threw an exception; bailing out.")
00074 {
00075 error = "Incorrect exception message thrown: expected it to contain (" + expected + "); got (" + mShortMessage + ").";
00076 }
00077 return error;
00078 }