# CCFXException Class

Abstract class that represents an exception thrown during the processing of a ColdFusion Extension (CFX) procedure.

Exceptions of this type can be thrown by CCFXRequest Class, CCFXQuery Class, and CCFXStringSet Class. Your ColdFusion Extension code must therefore be written to handle exceptions of this type. (See the CCFXRequest::ThrowException and CCFXRequest::ReThrowException tags for details on doing this correctly.)

## Class members

    virtual LPCSTR GetError()

The CCFXException::GetError function returns a general error message.

virtual LPCSTR GetDiagnostic()

The CCFXException::GetDiagnostics function returns detailed error information.

## CCFXException::GetError

This function provides basic user output for exception that occur during processing.

## CCFXException::GetDiagnostics

This function provides detailed user output for exception that occur during processing.

Example

This code block shows how both functions work with ThrowException and ReThrowException.

    // Write output back to the user here...
    pRequest->Write( "Hello from CFX_FOO2!" ) ;
    pRequest->ThrowException("User Error", "You goof'd...");

    // Output optional debug info
    if ( pRequest->Debug() )
    {
        pRequest->WriteDebug( "Debug info..." ) ;
    }
    }

    // Catch Cold Fusion exceptions & re-raise them
    catch( CCFXException* e )
    {
    // This is how you would pull the error information
    LPCTSTR strError = e->GetError();
    LPCTSTR strDiagnostic = e->GetDiagnostics();

    pRequest->ReThrowException( e ) ;
    }

    // Catch ALL other exceptions and throw them as
    // Cold Fusion exceptions (DO NOT REMOVE! --
    // this prevents the server from crashing in
    // case of an unexpected exception)
    catch( ... )
    {
        pRequest->ThrowException(
            "Error occurred in tag CFX_FOO2",
            "Unexpected error occurred while processing tag." ) ;
    }
    }