error.cpp
Go to the documentation of this file.
/* Frobby: Software for monomial ideal computations.
Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
*/
#include "stdinc.h"
#include "error.h"
#include "Scanner.h"
#include "FrobbyStringStream.h"
void reportError(const string& errorMsg) {
FrobbyStringStream err;
err << "ERROR: " << errorMsg;
throw FrobbyException(err);
}
void reportInternalError(const string& errorMsg) {
FrobbyStringStream err;
err << "INTERNAL ERROR: " << errorMsg << '\n';
throw InternalFrobbyException(err);
}
void reportInternalError
(const string& errorMsg, const char* file, unsigned int lineNumber) {
FrobbyStringStream err;
err << errorMsg << '\n'
<< "The internal error occurred in file " << file
<< " on line " << lineNumber << '.';
reportInternalError(err);
}
void reportSyntaxError(const Scanner& scanner, const string& errorMsg) {
FrobbyStringStream err;
err << "SYNTAX ERROR (";
if (scanner.getFormat() != "")
err << "format " << scanner.getFormat() << ", ";
err << "line "
<< scanner.getLineNumber()
<< "):\n "
<< errorMsg
<< '\n';
throw FrobbyException(err);
}
FrobbyStringStream.h
Scanner.h
FrobbyException
This is the base of the Frobby exception hierarchy for exceptions that can occur due to expected erro...
Definition error.h:27
FrobbyStringStream
A replacement for stringstream.
Definition FrobbyStringStream.h:26
InternalFrobbyException
This exception signals that a bug in Frobby has been detected.
Definition error.h:33
Scanner
This class offers an input interface which is more convenient and for some purposes more efficient th...
Definition Scanner.h:50
Scanner::getLineNumber
unsigned int getLineNumber() const
Returns the number of newlines seen.
Definition Scanner.h:145
Scanner::getFormat
const string & getFormat() const
Definition Scanner.h:61
reportInternalError
void reportInternalError(const string &errorMsg)
Definition error.cpp:29
reportSyntaxError
void reportSyntaxError(const Scanner &scanner, const string &errorMsg)
Definition error.cpp:44
reportError
void reportError(const string &errorMsg)
Definition error.cpp:23
error.h
stdinc.h
This header file includes common definitions and is included as the first line of code in every imple...