currentException (EGL-Systemvariable)

Wenn die Ausführung im V6-Ausnahmemodus erfolgt, verwenden Sie die Systemvariable 'sysLib.currentException', um Informationen zu eventuellen Ausnahmebedingungen zu erfassen, die in der Ausführungseinheit ausgelöst wurden.

Weitere Informationen zum V6-Ausnahmemodus finden Sie unter V6-Ausnahmebedingungskompatibilität verwenden.

Wenn Ihr Code im V6-Ausnahmekompatibilitätsmodus auf einen onException-Block trifft, wird 'sysLib.currentException' von EGL mit Informationen zum betreffenden Problem gefüllt. Im Gegensatz zu Ausnahmebedingungen nach V6, bei denen es sich um Datensätze handelt, ist 'sysLib.currentException' ein Wörterverzeichnis, dessen Schlüssel vom Typ der ausgelösten Ausnahmebedingung abhängen.

'sysLib.currentException' verfügt immer über einen Schlüssel namens 'code'. Dieser Schlüssel ist eine Zeichenfolge, die die Ausnahmebedingung angibt.

Der Zugriff auf die Ausnahmebedingungsfelder ist nur in einem onException-Block möglich. Wenn Ihr Code auf 'sysLib.currentException' zugreift, ohne dass EGL eine Ausnahmebedingung ausgelöst hat, wird die Ausführungseinheit beendet.

Beispiel

Im folgenden Beispiel bestimmt das Programm die aktuelle Ausnahmebedingung, indem das Feld 'code' getestet wird:

  if (userRequest == "A")
    try
      add record1;
    onException
      case (sysLib.currentException.code)
        when ("com.ibm.egl.FileIOException")
          myErrorHandler(12);
        when ("com.ibm.egl.InvocationException")
          myErrorHandler(13);
        otherwise
          myErrorHandler(15);
      end
    end
  end

Ausnahmebedingungstypen

Die nachstehende Liste enthält die Fehlertypen, bei denen 'sysLib.currentException' gesetzt wird, sowie die Informationen, die daraufhin in der Variablen enthalten sind. Sämtliche Werte haben den Typ STRING, sofern nicht anders angegeben:
FileIOException
Nach einem E/A-Fehler für Dateien enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.FileIOException"
description
Die Fehlernachricht.
filename
Den Namen der Datei mit dem Fehler.
errorCode
Einen Fehlercode (wie beispielsweise den in 'SysVar.errorCode').
InvocationException
Nach einem Fehler in einer fernen call-Anweisung enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.InvocationException"
description
Die Fehlernachricht.
name
Den Namen des Programms, das EGL aufzurufen versucht hat.
errorCode
Einen Fehlercode (wie beispielsweise den in 'SysVar.errorCode').
LobProcessingException
Nach einem Fehler aufgrund einer BLOB-, CLOB- oder lobLib-Funktion enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.LobProcessingException"
description
Die Fehlernachricht.
operation
Die Operation, die den Fehler ausgelöst hat.
resource
Den Bereich, in dem die BLOB- oder CLOB-Daten gespeichert sind (ein Dateiname oder das Wort "memory").
itemName
Den Namen des BLOB oder CLOB.
MQIOException
Nach einem E/A-Fehler für Nachrichtenwarteschlangen enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.MQIOException"
description
Die Fehlernachricht.
name
Den Namen der logischen Warteschlange, in der der Fehler auftrat.
errorCode
Einen Fehlercode (wie beispielsweise den in 'SysVar.errorCode').
mqConditionCode
Den Code für den Fehler aus der Nachrichtenwarteschlange (wie beispielsweise den Fehler in 'VgVar.mqConditionCode').
ServiceBindingException
Nach einem Fehler während des Bindings eines Service enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.ServiceBindingException"
description
Die Fehlernachricht.
ServiceInvocationException
Nach einem Fehler während des Aufrufs eines Service enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.ServiceInvocationException"
description
Die Fehlernachricht.
source
Der Typ des Service: "EGL" oder "WEB".
detail1
Wenn das Feld 'source' auf WEB gesetzt ist, enthält 'detail1' den Fehlercodewert (FaultCode) des SOAP-Fehlers.
detail2
Wenn das Feld 'source' auf WEB gesetzt ist, enthält 'detail1' den Wert des SOAP-Akteurs (SOAPActor) des SOAP-Fehlers.
detail3
Wenn das Feld 'source' auf WEB gesetzt ist, enthält 'detail1' den Diagnosewert (Diagnostic) des SOAP-Fehlers.
SQLException
Nach einem SQL-E/A-Fehler enthält die Variable die folgenden Informationen:
code
"com.ibm.egl.SQLException"
description
Die Fehlernachricht.
sqlca
Siehe sqlLib.sqlData (EGL-Systemvariable). Dieser Wert hat den Typ HEX.
sqlcode
Siehe sqlLib.sqlData (EGL-Systemvariable). Dieser Wert hat den Typ INT.
sqlerrd
Siehe sqlLib.sqlData (EGL-Systemvariable). Dieser Wert ist eine Feldgruppe mit INT-Typen.
sqlerrmc
Siehe sqlLib.sqlData (EGL-Systemvariable). Dieser Wert hat den Typ CHAR.
sqlwarn
Siehe sqlLib.sqlData (EGL-Systemvariable). Dieser Wert ist eine Feldgruppe mit CHAR-Typen.
sqlstate
Siehe sqlLib.sqlData (EGL-Systemvariable). Dieser Wert hat den Typ CHAR.

Hinweise zur Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität
Plattform Problem
COBOL-Generierung Die Variable 'sysLib.currentException' wird nicht unterstützt.
JavaScript-Generierung Die Variable 'sysLib.currentException' wird nicht unterstützt.

Feedback