![]() |
Isis 3 Programmer Reference
|
#include <IException.h>
Public Types | |
enum | ErrorType { Unknown = 1, User, Programmer, Io } |
Contains a set of exception error types. More... | |
Public Member Functions | |
IException () | |
The default constructor creates an IException instance with no message, previous exceptions, or file info. More... | |
IException (ErrorType type, const char *message, const char *fileName, int lineNumber) | |
This version of the constructor creates an IException instance with the given error type, message, and file info. More... | |
IException (ErrorType type, const std::string &message, const char *fileName, int lineNumber) | |
This version of the constructor creates an IException instance with the given error type, message, and file info. More... | |
IException (ErrorType type, const QString &message, const char *fileName, int lineNumber) | |
This version of the constructor creates an IException instance with the given error type, message, and file info. More... | |
IException (const IException &caughtException, ErrorType newExceptionType, const char *message, const char *fileName, int lineNumber) | |
This version of the constructor creates an IException instance with the given error type, message, file info. More... | |
IException (const IException &caughtException, ErrorType newExceptionType, const std::string &message, const char *fileName, int lineNumber) | |
This version of the constructor creates an IException instance with the given error type, message, file info. More... | |
IException (const IException &caughtException, ErrorType newExceptionType, const QString &message, const char *fileName, int lineNumber) | |
This version of the constructor creates an IException instance with the given error type, message, file info. More... | |
IException (const IException &other) | |
The copy constructor creates a copy of the given exception. More... | |
~IException () throw () | |
The destructor frees memory allocated for the message, filename, and list of previous exceptions. More... | |
const char * | what () const throw () |
Returns a string representation of this exception in its current state. More... | |
void | append (const IException &exceptionSource) |
Appends the given exception (and its list of previous exceptions) to this exception's causational exception list. More... | |
ErrorType | errorType () const |
Returns the source of the error for this exception. More... | |
void | print () const |
Prints a string representation of this exception to stderr. More... | |
void | print (bool printFileInfo) const |
Prints a string representation of this exception to stderr, including file info if specified. More... | |
Pvl | toPvl () const |
Returns a PVL object representing the contents of this exception. More... | |
QString | toString () const |
Returns a string representation of this exception. More... | |
QString | toString (bool printFileInfo) const |
Returns a string representation of this exception, including file info if specified. More... | |
void | swap (IException &other) |
Swaps the values of this instance's member data with other. More... | |
IException & | operator= (const IException &rhs) |
Assign the values of rhs to this instance. More... | |
Static Public Member Functions | |
static QString | errorTypeToString (ErrorType t) |
Returns the source of the error in string format for the given ErrorType. More... | |
Private Member Functions | |
char * | buildWhat () const |
Returns a C string containing a string representation of this exception. More... | |
void | deleteEmptyMemberStrings () |
This is a helper method for the constructors. More... | |
Static Private Member Functions | |
static IException | createStackTrace () |
Returns an IException representing the current stack, excluding this method. More... | |
static ErrorType | stringToErrorType (const QString &s) |
Given a string, returns the error type associated with it. More... | |
Private Attributes | |
char * | m_what |
This is used to store the return value of what() in a way that guarantees the returned data will not be deleted as long as this instance is unmodified. More... | |
ErrorType | m_errorType |
This exception's error source. More... | |
QString * | m_message |
The message associated with this exception. More... | |
QString * | m_fileName |
The source code file that threw this exception. More... | |
int | m_lineNumber |
The line in the source code file that threw this exception. More... | |
QList< IException > * | m_previousExceptions |
A list of exceptions that caused this exception. More... | |
Isis exception class.
This class represents a general Isis exception. It contains an enumeration for what type of error the exception represents, and can optionally track what exceptions caused the current exception. This class also provides access to string and PVL representations of the exception.
Instances of this class should be thrown by value and caught be reference. Please see the constructor documentation for code examples on how to create and throw exceptions.
All methods in this class are re-entrant.
Definition at line 91 of file IException.h.
Contains a set of exception error types.
These types indicate the source of the error. For example, if the error type is User, this indicates that the exception was thrown due to something the user did wrong, such as provide a cube with no SPICE data to an application that needed a spiceinit'd cube as input.
Definition at line 111 of file IException.h.
Isis::IException::IException | ( | ) |
The default constructor creates an IException instance with no message, previous exceptions, or file info.
The exception error type is Unknown.
This default constructor exists so that IException instances can be stored in Qt containers such as lists. This is also used for cancelling a program run.
Definition at line 40 of file IException.cpp.
Referenced by createStackTrace().
Isis::IException::IException | ( | ErrorType | type, |
const char * | message, | ||
const char * | fileName, | ||
int | lineNumber | ||
) |
This version of the constructor creates an IException instance with the given error type, message, and file info.
The IException instance will not have any previous exceptions associated with it initially (i.e. no exception caused this one to be thrown).
type | the source of the error that this exception represents |
message | the string message containing details about the error, which may be displayed to the user |
fileName | the filename of the file that this exception was thrown in |
lineNumber | the line in the source code file that threw this exception |
Definition at line 110 of file IException.cpp.
Isis::IException::IException | ( | ErrorType | type, |
const std::string & | message, | ||
const char * | fileName, | ||
int | lineNumber | ||
) |
This version of the constructor creates an IException instance with the given error type, message, and file info.
The IException instance will not have any previous exceptions associated with it initially (i.e. no exception caused this one to be thrown). The QString version of this constructor is preferred over this one.
type | the source of the error that this exception represents |
message | the string message containing details about the error, which may be displayed to the user |
fileName | the filename of the file that this exception was thrown in |
lineNumber | the line in the source code file that threw this exception |
Definition at line 148 of file IException.cpp.
Isis::IException::IException | ( | ErrorType | type, |
const QString & | message, | ||
const char * | fileName, | ||
int | lineNumber | ||
) |
This version of the constructor creates an IException instance with the given error type, message, and file info.
The IException instance will not have any previous exceptions associated with it initially (i.e. no exception caused this one to be thrown).
type | the source of the error that this exception represents |
message | the string message containing details about the error, which may be displayed to the user |
fileName | the filename of the file that this exception was thrown in |
lineNumber | the line in the source code file that threw this exception |
Definition at line 72 of file IException.cpp.
Isis::IException::IException | ( | const IException & | caughtException, |
ErrorType | type, | ||
const char * | message, | ||
const char * | fileName, | ||
int | lineNumber | ||
) |
This version of the constructor creates an IException instance with the given error type, message, file info.
The IException instance will append the given exception to its list of previous exceptions (as well as any previous exceptions associated with the caught exception). Use this constructor when you want to rethrow a new exception after catching an exception and preserve the previous message(s).
caughtException | the previous exception that caused this exception to be thrown |
type | the source of the error that this exception represents |
message | the string message containing details about the error, which may be displayed to the user |
fileName | the filename of the file that this exception was thrown in |
lineNumber | the line in the source code file that threw this exception |
Definition at line 196 of file IException.cpp.
Isis::IException::IException | ( | const IException & | caughtException, |
ErrorType | type, | ||
const std::string & | message, | ||
const char * | fileName, | ||
int | lineNumber | ||
) |
This version of the constructor creates an IException instance with the given error type, message, file info.
The IException instance will append the given exception to its list of previous exceptions (as well as any previous exceptions associated with the caught exception). Use this constructor when you want to rethrow a new exception after catching an exception and preserve the previous message(s). The QString version of this constructor is preferred over this one.
caughtException | the previous exception that caused this exception to be thrown |
type | the source of the error that this exception represents |
message | the string message containing details about the error, which may be displayed to the user |
fileName | the filename of the file that this exception was thrown in |
lineNumber | the line in the source code file that threw this exception |
Definition at line 244 of file IException.cpp.
Isis::IException::IException | ( | const IException & | caughtException, |
ErrorType | type, | ||
const QString & | message, | ||
const char * | fileName, | ||
int | lineNumber | ||
) |
This version of the constructor creates an IException instance with the given error type, message, file info.
The IException instance will append the given exception to its list of previous exceptions (as well as any previous exceptions associated with the caught exception). Use this constructor when you want to rethrow a new exception after catching an exception and preserve the previous message(s).
caughtException | the previous exception that caused this exception to be thrown |
type | the source of the error that this exception represents |
message | the string message containing details about the error, which may be displayed to the user |
fileName | the filename of the file that this exception was thrown in |
lineNumber | the line in the source code file that threw this exception |
Definition at line 291 of file IException.cpp.
Isis::IException::IException | ( | const IException & | other | ) |
The copy constructor creates a copy of the given exception.
other | the exception to copy from |
Definition at line 315 of file IException.cpp.
References m_errorType, m_fileName, m_lineNumber, m_message, m_previousExceptions, and m_what.
Isis::IException::~IException | ( | ) | ||
throw | ( | |||
) |
The destructor frees memory allocated for the message, filename, and list of previous exceptions.
Definition at line 349 of file IException.cpp.
References m_errorType, m_fileName, m_lineNumber, m_message, m_previousExceptions, m_what, and Unknown.
void Isis::IException::append | ( | const IException & | exceptionSource | ) |
Appends the given exception (and its list of previous exceptions) to this exception's causational exception list.
The passed in exception is the cause of this exception. Exceptions should be appended in the original order that they were thrown - earlier first.
This method causes the results of what() to be rebuilt, invalidating any previous results.
exceptionSource | the exception that should be added to the list of previous exceptions |
Definition at line 409 of file IException.cpp.
References buildWhat(), m_previousExceptions, and m_what.
Referenced by Isis::InlineCalculator::compile(), Isis::ShapeModelFactory::create(), Isis::ProjectionFactory::CreateForCube(), Isis::ExportImagesWorkOrder::ProjectImageExportFunctor::errors(), Isis::ImportControlNetWorkOrder::CreateControlsFunctor::errors(), Isis::ImportImagesWorkOrder::OriginalFileToProjectCubeFunctor::errors(), Isis::ImportShapesWorkOrder::OriginalFileToProjectCubeFunctor::errors(), Isis::ImagePolygon::initCube(), Isis::IssNACamera::IssNACamera(), Isis::Chip::Load(), Isis::Target::lookupNaifBodyCode(), Isis::ProgramLauncher::ProcessIsisMessageFromChild(), Isis::ProjectionFactory::RingsCreateForCube(), Isis::ProgramLauncher::RunIsisProgram(), and Isis::UniversalGroundMap::UniversalGroundMap().
|
private |
Returns a C string containing a string representation of this exception.
This method should be called any time the current exception is modified (e.g. appending an exception to the previous exceptions list, etc.) in order to keep m_what synched with the current state of the exception.
Definition at line 750 of file IException.cpp.
References toString().
Referenced by append().
|
staticprivate |
Returns an IException representing the current stack, excluding this method.
Definition at line 673 of file IException.cpp.
References IException(), and Unknown.
|
private |
This is a helper method for the constructors.
When the message or source code file name are empty strings, we want our members to be NULL instead of empty IStrings.
Definition at line 766 of file IException.cpp.
References m_fileName, and m_message.
IException::ErrorType Isis::IException::errorType | ( | ) | const |
Returns the source of the error for this exception.
Definition at line 430 of file IException.cpp.
References m_errorType.
Referenced by Isis::Application::Application(), Isis::NumericalApproximation::BackwardFirstDifference(), Isis::NumericalApproximation::BackwardSecondDifference(), Isis::NumericalApproximation::BoolesRule(), Isis::NumericalApproximation::CenterFirstDifference(), Isis::NumericalApproximation::CenterSecondDifference(), Isis::NumericalApproximation::ComputeCubicClamped(), Isis::NumericalApproximation::ComputeGsl(), Isis::NumericalApproximation::CubicClampedSecondDerivatives(), Isis::NumericalApproximation::DomainMaximum(), Isis::NumericalApproximation::DomainMinimum(), Isis::NumericalApproximation::Evaluate(), Isis::NumericalApproximation::EvaluateCubicNeighborhood(), Isis::NumericalApproximation::EvaluateForIntegration(), Isis::NumericalApproximation::ForwardFirstDifference(), Isis::NumericalApproximation::ForwardSecondDifference(), Isis::Application::FunctionError(), Isis::NumericalApproximation::GslFirstDerivative(), Isis::NumericalApproximation::GslIntegral(), Isis::NumericalApproximation::GslSecondDerivative(), Isis::NumericalApproximation::Init(), Isis::NumericalApproximation::InsideDomain(), Isis::NumericalApproximation::MinPoints(), Isis::NumericalApproximation::Name(), Isis::NumericalApproximation::NumericalApproximation(), Isis::NumericalApproximation::operator=(), Isis::NumericalAtmosApprox::OutrFunc2Bint(), Isis::NumericalAtmosApprox::RefineExtendedTrap(), Isis::NumericalApproximation::RefineExtendedTrap(), Isis::NumericalApproximation::Reset(), Isis::NumericalAtmosApprox::RombergsMethod(), Isis::NumericalApproximation::RombergsMethod(), Isis::NumericalApproximation::SetInterpType(), Isis::NumericalApproximation::Simpsons3PointRule(), Isis::NumericalApproximation::Simpsons4PointRule(), Isis::BundleAdjust::solveCholesky(), and Isis::NumericalApproximation::TrapezoidalRule().
|
static |
Returns the source of the error in string format for the given ErrorType.
type | the ErrorType enum to convert to a string |
Definition at line 698 of file IException.cpp.
References Io, Programmer, Unknown, and User.
Referenced by toPvl(), and toString().
IException & Isis::IException::operator= | ( | const IException & | rhs | ) |
Assign the values of rhs to this instance.
This is a deep copy and is exception-safe.
rhs | the IException on the right-hand side of the equals operator |
Definition at line 659 of file IException.cpp.
References swap().
void Isis::IException::print | ( | ) | const |
Prints a string representation of this exception to stderr.
File info (i.e. filename and line number) are only printed if the user has that option enabled in their preferences file. The printed exception will be either PVL-formatted or formatted as plain sentences according to the user's preferences file.
This should be the preferred method call in unit tests when testing exceptions thrown by your class.
Definition at line 445 of file IException.cpp.
References toString().
Referenced by Isis::Application::Application(), Isis::ImagePolygon::Create(), Isis::Image::createFootprint(), Isis::Shape::createFootprint(), Isis::MosaicSceneItem::drawImage(), Isis::CissLabels::Init(), Isis::Shape::initCamStats(), Isis::ImageReader::VariantToImageFunctor::operator()(), Isis::ShapeReader::VariantToShapeFunctor::operator()(), Isis::MosaicSceneWidget::reprojectItems(), Isis::Pipeline::Run(), and Isis::VoyagerCamera::VoyagerCamera().
void Isis::IException::print | ( | bool | printFileInfo | ) | const |
Prints a string representation of this exception to stderr, including file info if specified.
The printed exception will be either PVL-formatted or formatted as plain sentences according to the user's preferences file.
printFileInfo | whether or not to include file info in the printed version of this exception. This ignores the option set in the user's preferences file regarding file info. |
Definition at line 461 of file IException.cpp.
References toString().
|
staticprivate |
Given a string, returns the error type associated with it.
string | the string to convert into the appropriate ErrorType |
Definition at line 727 of file IException.cpp.
References Io, Programmer, Unknown, and User.
void Isis::IException::swap | ( | IException & | other | ) |
Swaps the values of this instance's member data with other.
This method is exception-safe.
other | the exception to swap member data with |
Definition at line 642 of file IException.cpp.
References m_errorType, m_fileName, m_lineNumber, m_message, m_previousExceptions, and m_what.
Referenced by operator=().
Pvl Isis::IException::toPvl | ( | ) | const |
Returns a PVL object representing the contents of this exception.
File info is included unless there is no filename or line number associated with an exception, regardless of the user's preferences file.
Definition at line 475 of file IException.cpp.
References Isis::PvlObject::addGroup(), errorTypeToString(), m_errorType, m_fileName, m_lineNumber, m_message, m_previousExceptions, Isis::Application::Name(), Isis::toString(), and Unknown.
Referenced by Isis::Application::FunctionError(), and toString().
QString Isis::IException::toString | ( | ) | const |
Returns a string representation of this exception.
File info (i.e. filename and line number) are only included if the user has that option enabled in their preferences file. The string representation of the exception will be either PVL-formatted or formatted as plain sentences according to the user's preferences file.
Definition at line 537 of file IException.cpp.
References Isis::PvlContainer::hasKeyword().
Referenced by Isis::Workspace::addCubeViewport(), Isis::Gruen::algorithm(), buildWhat(), Isis::FindTool::distancePerPixel(), Isis::Gruen::errorAnalysis(), Isis::ExportImagesWorkOrder::execute(), Isis::ImportControlNetWorkOrder::execute(), Isis::Application::FunctionError(), Isis::ChipViewport::geomChip(), Isis::Application::GuiReportError(), Isis::ImportImagesWorkOrder::importConfirmedImages(), Isis::ImportShapesWorkOrder::importConfirmedShapes(), Isis::ControlPointEditWidget::initDem(), Isis::ProjectionConfigDialog::loadFromFile(), Isis::MosaicControlNetTool::loadNetwork(), Isis::StereoTool::measureSaved(), Isis::MatchTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::ChipViewport::nogeomChip(), Isis::QnetFileTool::open(), Isis::Project::open(), Isis::QnetTool::openGround(), print(), Isis::ControlMeasureEditWidget::registerPoint(), Isis::ControlPointEdit::registerPoint(), Isis::ChipViewport::reloadChip(), Isis::ChipViewport::rotateChip(), Isis::QnetFileTool::saveAs(), Isis::ControlMeasureEditWidget::saveMeasure(), Isis::ControlPointEdit::saveMeasure(), Isis::PvlEditDialog::saveTextEdit(), Isis::ControlPointEditWidget::selectLeftMeasure(), Isis::MatchTool::selectLeftMeasure(), Isis::ControlPointEditWidget::selectRightMeasure(), Isis::MatchTool::selectRightMeasure(), Isis::QnetSetAprioriDialog::setApriori(), Isis::StereoTool::setFiles(), Isis::ControlMeasureEditWidget::setGeom(), Isis::ControlPointEdit::setGeom(), Isis::ControlMeasureEditWidget::setRightMeasure(), Isis::ControlPointEdit::setRightMeasure(), Isis::ZoomTool::setScale(), Isis::ControlMeasureEditWidget::setTemplateFile(), Isis::ControlPointEdit::setTemplateFile(), IsisAml::StartParser(), Isis::Gui::StartProcess(), Isis::ControlMeasureEditWidget::updateRightGeom(), Isis::ControlPointEdit::updateRightGeom(), Isis::ControlPointEditWidget::viewTemplateFile(), Isis::MatchTool::viewTemplateFile(), Isis::QnetTool::viewTemplateFile(), Isis::StereoTool::viewTemplateFile(), Isis::ControlPointEditWidget::writeTemplateFile(), Isis::MatchTool::writeTemplateFile(), and Isis::QnetTool::writeTemplateFile().
QString Isis::IException::toString | ( | bool | includeFileInfo | ) | const |
Returns a string representation of this exception, including file info if specified.
The string representation of the exception will be either PVL-formatted or formatted as plain sentences according to the user's preferences file.
includeFileInfo | whether or not to include file info in the string representation of this exception. This ignores the option set in the user's preferences file regarding file info. |
Definition at line 564 of file IException.cpp.
References errorTypeToString(), Isis::PvlObject::groups(), Isis::PvlContainer::hasKeyword(), m_errorType, m_fileName, m_lineNumber, m_message, m_previousExceptions, toPvl(), Isis::toString(), and Unknown.
const char * Isis::IException::what | ( | ) | const | |
throw | ( | |||
) |
Returns a string representation of this exception in its current state.
The results of this method are guaranteed to be valid until the instance is modified.
Definition at line 375 of file IException.cpp.
References m_what.
Referenced by Isis::ControlHealthMonitorWorkOrder::execute(), Isis::ImportImagesWorkOrder::execute(), Isis::MatrixViewWorkOrder::execute(), Isis::SetActiveControlWorkOrder::execute(), Isis::SetActiveImageListWorkOrder::execute(), Isis::ImagePolygon::Fix360Poly(), Isis::ImageOverlapSet::HandleError(), Isis::ImportImagesWorkOrder::importConfirmedImages(), Isis::ImportShapesWorkOrder::importConfirmedShapes(), Isis::QIsisApplication::notify(), Isis::JigsawRunWidget::CopyImageToResultsFunctor::operator()(), Isis::ImportImagesWorkOrder::postExecution(), Isis::Target::radiiGroup(), Isis::CnetEditorWidget::rebuildModels(), Isis::ProjectionConfigDialog::refreshWidgetStates(), Isis::MatchTool::saveAsNet(), Isis::MatchTool::saveNet(), Isis::ImportImagesWorkOrder::setupExecution(), Isis::PolygonTools::SplitPolygonOn360(), and Isis::TableViewContent::updateActiveCell().
|
private |
This exception's error source.
If the source cannot be positively identified, then this should be set to Unknown.
Definition at line 219 of file IException.h.
Referenced by errorType(), IException(), swap(), toPvl(), toString(), and ~IException().
|
private |
The source code file that threw this exception.
Definition at line 230 of file IException.h.
Referenced by deleteEmptyMemberStrings(), IException(), swap(), toPvl(), toString(), and ~IException().
|
private |
The line in the source code file that threw this exception.
Definition at line 235 of file IException.h.
Referenced by IException(), swap(), toPvl(), toString(), and ~IException().
|
private |
The message associated with this exception.
This will be NULL if the message is empty (or only contained whitespace).
Definition at line 225 of file IException.h.
Referenced by deleteEmptyMemberStrings(), IException(), swap(), toPvl(), toString(), and ~IException().
|
private |
A list of exceptions that caused this exception.
Definition at line 240 of file IException.h.
Referenced by append(), IException(), swap(), toPvl(), toString(), and ~IException().
|
private |
This is used to store the return value of what() in a way that guarantees the returned data will not be deleted as long as this instance is unmodified.
Any changes to the current exception will reallocate this and invalidate old values of what().
Definition at line 213 of file IException.h.
Referenced by append(), IException(), swap(), what(), and ~IException().
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/13/2023 15:19:39 |