Exceptions for all of GNSSTK, including location information
Definition in file Exception.hpp.
#include <cstdlib>
#include <iostream>
#include <vector>
#include <string>
Go to the source code of this file.
Classes | |
class | gnsstk::Exception |
class | gnsstk::ExceptionLocation |
class | gnsstk::StopIterator |
Class for StopIterator Python exception, used by Vector.i. More... | |
Namespaces | |
gnsstk | |
For Sinex::InputHistory. | |
Macros | |
#define | FILE_LOCATION gnsstk::ExceptionLocation(__FILE__, "", __LINE__) |
#define | GNSSTK_ASSERT(CONDITION) |
Provide an "ASSERT" type macro. More... | |
#define | GNSSTK_RETHROW(exc) { exc.addLocation(FILE_LOCATION); throw; } |
#define | GNSSTK_THROW(exc) { exc.addLocation(FILE_LOCATION); throw exc; } |
#define | NEW_EXCEPTION_CLASS(child, parent) |
Functions | |
gnsstk::NEW_EXCEPTION_CLASS (AccessError, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (AssertionFailure, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (ConfigurationException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (EndOfFile, gnsstk::FFStreamError) | |
gnsstk::NEW_EXCEPTION_CLASS (FFStreamError, gnsstk::Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (FileMissingException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (IndexOutOfBoundsException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (InvalidArgumentException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (InvalidParameter, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (InvalidRequest, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (NullPointerException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (ObjectNotFound, AccessError) | |
gnsstk::NEW_EXCEPTION_CLASS (OutOfMemory, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (SystemPipeException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (SystemQueueException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (SystemSemaphoreException, Exception) | |
gnsstk::NEW_EXCEPTION_CLASS (UnimplementedException, Exception) | |
#define FILE_LOCATION gnsstk::ExceptionLocation(__FILE__, "", __LINE__) |
Just a comment for the wary. These following macros are quite useful. They just don't work under gcc 2.96/linux. If you can fix them I would be quite greatful but I am not holding my breath. For now, I am just manually putting the code where it needs to be. The problem seems to be with the FILE, FUNCTION, LINE__ being defined in a macro that is in a .hpp file as opposed to the .cpp file where the code gets used. When you do it you get a segfault. See the exceptiontest.cpp code in the base/test directory.
Definition at line 352 of file Exception.hpp.
#define GNSSTK_ASSERT | ( | CONDITION | ) |
Provide an "ASSERT" type macro.
Definition at line 373 of file Exception.hpp.