{{page>en:templates:fapiint}}
====== DosErrClass ======
This call helps OS/2 applications respond to error codes (return codes) received from OS/2.
===== Syntax =====
DosErrClass (Code, Class, Action, Locus)
===== Parameters =====
* Code ([[USHORT]]) - input : Error code returned by an OS/2 function.
* Class ([[PUSHORT]]) - output : Address of the classification of an error.
* Action ([[PUSHORT]]) - output : Address of the action for an error.
* Locus ([[PUSHORT]]) - output : Address of the origin of an error.
===== Return Code =====
rc ([[USHORT]]) - return:Return code descriptions are:
* 0 NO_ERROR
===== Remarks =====
The input is a return code returned from another function call, and the output is a classification of the return and recommended action. Depending on the application, the recommended action could be followed, or a more specific application recovery could be performed.
The following values are returned in Class, Action, and Locus:
^ VALUE ^ MNEMONIC ^ DESCRIPTION ^
|1|OUTRES|Out of resources|
|2|TEMPSIT|Temporary situation|
|3|AUTH|Authorization failed|
|4|INTRN|Internal error|
|5|HRDFAIL|Device hardware failure|
|6|SYSFAIL|System failure|
|7|APPERR|Probable application error|
|8|NOTFND|Item not located|
|9|BADFMT|Bad format for call/data|
|10|LOCKED|Resource/data locked|
|11|MEDIA|Incorrect media, CRC error|
|12|ALREADY|Resource/action already taken/done/exists|
|13|UNK|Unclassified|
|14|CANT|Can't perform requested action|
|15|TIME|Timeout|
^ VALUE ^ MNEMONIC ^ DESCRIPTION ^
|1|RETRY|Retry immediately|
|2|DLYRET|Delay and retry|
|3|USER|Bad user input - get new values|
|4|ABORT|Terminate in an orderly manner|
|5|PANIC|Terminate immediately|
|6|IGNORE|Ignore error|
|7|INTRET|Retry after user intervention|
^VALUE^MNEMONIC^DESCRIPTION^
|1|UNK|Unknown|
|2|DISK|Random access device such as a disk|
|3|NET|Network|
|4|SERDEV|Serial device|
|5|MEM|Memory|
==== Family API Considerations ====
Some options operate differently in the DOS mode than in the OS/2 mode. Therefore, the following considerations apply to DosErrClass when coding for the DOS mode:
When DosErrClass is called by a family application, it returns a valid error classification for returns that have occurred. The classifications of a given return code may not be the same for the Family API and the OS/2 mode applications.
===== Bindings =====
==== C ====
#define INCL_DOSMISC
USHORT rc = DosErrClass(Code, Class, Action, Locus);
USHORT Code; /* Error code for analysis */
PUSHORT Class; /* Error classification (returned) */
PUSHORT Action; /* Recommended action (returned) */
PUSHORT Locus; /* Error locus (returned) */
USHORT rc; /* return code */
==== MASM ====
EXTRN DosErrClass:FAR
INCL_DOSMISC EQU 1
PUSH WORD Code ;Error code for analysis
PUSH@ WORD Class ;Error classification (returned)
PUSH@ WORD Action ;Recommended action (returned)
PUSH@ WORD Locus ;Error locus (returned)
CALL DosErrClass
Returns WORD
===== Example Code =====
This example attempts to delete a non-existent file. The error returned is then plugged into DosErrClass for more information about the error and what actions should be taken.
#define INCL_DOSQUEUES
#define RESERVED 0L
#define FILE_DELETE "adlkjf.dkf"
USHORT Error;
USHORT Class;
USHORT Action;
USHORT Locus;
USHORT rc;
Error = DosDelete(FILE_DELETE, /* File name path */
RESERVED); /* Reserved (must be zero) */
rc = DosErrClass(Error, /* Error code for analysis */
&Class, /* Error classification */
&Action, /* Recommended action */
&Locus); /* Error locus */
{{page>en:templates:fapi}}