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
- 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
| Plattform | Problem |
|---|---|
| COBOL-Generierung | Die Variable 'sysLib.currentException' wird nicht unterstützt. |
| JavaScript-Generierung | Die Variable 'sysLib.currentException' wird nicht unterstützt. |