Throw

 (Available in 00 TS Base(Base) - TS_Base_2_ErrorSysError)

Purpose

Short

Syntax

Syntax

Arguments

ParamX
Param description

Description

Long

Returns

Return

Example

Example

Source

METHOD Throw( udwSeverity, udwLevel, udwChoice ) CLASS TS_Error
LOCAL struBoxData AS _TS_ErrorSysBoxData
LOCAL oGlobalData AS _TS_GlobalData
LOCAL dwSeverity AS DWORD
LOCAL uRetVal AS USUAL
LOCAL dwLevel AS DWORD
LOCAL cID AS STRING
   oGlobalData:=_TS_ModuleGetGlobalData( )
   dwLevel:=TS_SafeDWORD( udwLevel, NULL_PTR )+1U
   IF IsNumeric( udwChoice )
      SELF:Choice:=TS_SafeDWORD( udwChoice, NULL_PTR )
   END
   IF IsNumeric( udwSeverity )
      dwSeverity:=TS_SafeDWORD( udwSeverity, NULL_PTR )
      IF _TS_ErrorSysItemSeverity( SELF, NIL )<dwSeverity
         _TS_ErrorSysItemSeverity( SELF, dwSeverity )
      END
   END
   IF SELF:Choice==EC_DEBUG
      IF TS_ErrorSysGetIsDebug( )
         _TS_ErrorSysItemShown( SELF, TRUE )
         struBoxData.ButtonAbort:=SE_NOBUTTON
         struBoxData.ButtonBreak:=SE_NOBUTTON
         struBoxData.ButtonIgnore:=SE_NOBUTTON
         struBoxData.ButtonRetry:=SE_NOBUTTON
         struBoxData.Choice:=SELF:Choice
         struBoxData.ErrorMessage:=String2Psz( SELF:Description  ; ...
        ... )
         struBoxData.ErrorSeverity:=String2Psz( TS_ErrorSysSeverity2String ; ...
        ... ( SELF ) )
         struBoxData.Level:=dwLevel
         struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, NIL )
         _TS_ErrorSysErrorBox( SELF, @struBoxData )
      ELSE
         SELF:Choice:=EC_IGNORE
      END
   END
   DO CASE
   CASE SELF:Choice==EC_ABORT .OR. TS_ErrorSysAborting( )
      IF LOGIC( _CAST, IVarGetInfo( SELF, _TS_TRACE_DATA ) )
         cID:=TS_S_GLUON+TS_ErrorSysSeverity2String( SELF )+TS_S_ID_INTO+NTrim( TS_TraceIDGet ; ...
        ... ( SELF ) )
      ELSE
         cID:=TS_S_GLUON+TS_S_NOID
      END
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Throw()", dwLevel  ; ...
     ... )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutMLSC( "SELF:Choice==EC_ABORT, Fatal error the application is " ; ...
     ... +"abborted"+cID, dwLevel )
      _TS_TraceOnOffNL( TRUE, TRUE, 0U )
      _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Throw()", dwLevel  ; ...
     ... )
      _TS_ErrorSysForceAbort( SELF )
      RETURN NIL
   CASE SELF:Choice==EC_BREAK
      IF LOGIC( _CAST, IVarGetInfo( SELF, _TS_TRACE_DATA ) )
         cID:=TS_S_GLUON+TS_ErrorSysSeverity2String( SELF )+TS_S_ID_INTO+NTrim( TS_TraceIDGet ; ...
        ... ( SELF ) )
      ELSE
         cID:=TS_S_GLUON+TS_S_NOID
      END
      IF CanBreak( )
         _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Throw()", dwLevel  ; ...
        ... )
         _TS_TraceOnOffNL( TRUE, TRUE, 0U )
         _TS_TraceDebOutMLSC( "SELF:Choice==EC_BREAK"+cID, dwLevel )
         _TS_TraceOnOffNL( TRUE, TRUE, 0U )
         _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Throw()", dwLevel  ; ...
        ... )
         LabelJump( SELF )
      ELSE
         _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_HEADER1, "Error:Throw()", dwLevel  ; ...
        ... )
         _TS_TraceOnOffNL( TRUE, TRUE, 0U )
         _TS_TraceDebOutMLSC( "SELF:Choice==EC_BREAK, Fatal error the application " ; ...
        ... +"is abborted"+cID, dwLevel )
         _TS_TraceOnOffNL( TRUE, TRUE, 0U )
         _TS_TraceDebOutCmdC( _TS_TRACE_DEBOUT_CMD_FOOTER1, "Error:Throw()", dwLevel  ; ...
        ... )
         _TS_ErrorSysForceAbort( SELF )
      END
      RETURN NIL
   CASE SELF:Choice==EC_RETRY
      uRetVal:=NIL
   CASE SELF:Choice==EC_IGNORE
      uRetVal:=NIL
   CASE SELF:Choice==EC_ALERT
      _TS_ErrorSysItemShown( SELF, TRUE )
      struBoxData.ButtonAbort:=SE_NOBUTTON
      struBoxData.ButtonBreak:=SE_NOBUTTON
      struBoxData.ButtonIgnore:=SE_NOBUTTON
      struBoxData.ButtonRetry:=SE_NOBUTTON
      struBoxData.Choice:=SELF:Choice
      struBoxData.ErrorMessage:=String2Psz( SELF:Description  ; ...
     ... )
      struBoxData.ErrorSeverity:=String2Psz( TS_ErrorSysSeverity2String ; ...
     ... ( SELF ) )
      struBoxData.Level:=dwLevel
      struBoxData.Severity:=_TS_ErrorSysItemSeverity( SELF, NIL )
      _TS_ErrorSysErrorBox( SELF, @struBoxData )
      uRetVal:=NIL
   OTHERWISE
      _TS_ErrorSysErrorInternal( "SELF:Choice==EC_???", TS_TRACESUBCODE_TEXT, TS_TRACESUBCODE_ID ; ...
     ... , EG_UNKNOWN, ES_WARNING, __APPLICATION__, __MODULE__, __ENTITY__, __LINE__ ; ...
     ... , SELF, 0U )
      uRetVal:=NIL
   END
RETURN uRetVal