FITSError.h

Classes

FITSError -- default FITS error handling function, typdef, and enumeration (full description)

class FITSError

Types

enum ErrorLevel

WARN
SEVERE

Interface

Public Members
static void defaultHandler(const char *errMessage, ErrorLevel severity)

Description

Review Status

Reviewed By:
to be reviewed
Date Reviewed:
yyyy/mm/dd

Synopsis

FITSError contains the enumeration specifying the possible error message levels. It also contains the default error handling function for the FITS classes.

Example

This example shows how one could set up an error handler which does what the FITS classes originally did - just send the error message to cout without any indication as to the severity of the error message.
    void coutErrHandler(const char *errMessage, FITSError::ErrorLevel)
    {  cout << errMessage << endl; }
    
    FitsInput fin("myFile", FITS::Disk, 10, coutErrHandler);
    
Any error messages generated by fin will be sent to cout. Error handlers for the HDUs would need to be indicated in their constructors. For example:
    PrimaryArray<Float> pa(fin, coutErrHandler);
    
The default error handler is FITSError::defaultHandler which sends the error message to the global log sink at the severity implied by ErrorLevel.

The error handler only handles the error messages. It is up to the programmer to check for the error status of classes like FitsInput.

Motivation

Originally, FITS error message were simply sent to an ostream. In order to have these error messages go to the AIPS++ logger by default, this class was added. This was made a separate class because both BlockIo and FITS need to use this class. The anticipated replacements for the current FITS classes use a somewhat similar scheme.

Member Description

enum ErrorLevel

WARN means that the FITS file is still usable - this generally happens when parsing the HDU and some minor, recoverable violation of the FITS rules is detected. SEVERE means that a fatal error has occurred and the FITS file can not be properly processed.

static void defaultHandler(const char *errMessage, ErrorLevel severity)

The default error handler. The errMessage is posted to the global log sink at the severity implied by ErrorLevel. It is assumed that errMessage is null terminated.