Common errors in routines

These common errors have simple solutions:

If your error is not caused by any of the items listed above, examine your routine or routines for changes since the last successful run. If there have been changes, review these changes for errors that might be causing the problem. One way to isolate the problem is to branch around or comment out recent changes and rerun the routine. If the run is successful, the error can be narrowed to the scope of the changes.

Duplicate names shared between Fortran routines and C library routines can produce unexpected results. Language Environment provides several cataloged procedures to properly resolve duplicate names. For more information on how to avoid name conflicts, see z/OS Language Environment Programming Guide.

Changes in optimization levels, addressing modes, and input/output file formats can also cause unanticipated problems in your routine.

In most cases, generated condition tokens or runtime messages point to the nature of the error. The runtime messages offer the most efficient corrective action. To help you analyze errors and determine the most useful method to fix the problem, Table 1 lists common error symptoms, possible causes, and programmer responses.

Table 1. Common error symptoms, possible causes, and programmer responses
Error Symptom Possible Cause Programmer Response
Numbered runtime message appears Condition raised in routine For any messages you receive, read the Programmer Response. For information about message structure, see Interpreting runtime messages.
User abend code < 4000
  • A non-Language Environment abend occurred .
  • The assembler user exit requested an abend for an unhandled condition of severity ≥2.
See the Language Environment abend codes in z/OS Language Environment Runtime Messages. Check for a subsystem-generated abend or a user-specified abend.
User abend code ≥ 4000
  • Language Environment detected an error and could not proceed.
  • An unhandled software-raised condition occurred and ABTERMENC(ABEND) was in effect.
  • The assembler user exit requested an abend for an unhandled condition of severity 4.
For any abends you receive, read the appropriate explanation listed in the abend codes section of z/OS Language Environment Runtime Messages.
System abend with TRAP(OFF) Cause depends on type of malfunction Respond appropriately. See the messages and codes book of the operating system.
System abend with TRAP(ON) System-detected error See the messages and codes information of the operating system.
No response (wait/loop) Application logic failure Check routine logic. Ensure ERRCOUNT and DEPTHCONDLMT runtime options are set to a nonzero value.
Unexpected message (message received was not from most recent service) Condition caused by something related to current service Generate a traceback using CEE3DMP.
Incorrect output Incorrect file definitions, storage overlay, incorrect routine mask setting, references to uninitialized variables, data input errors, or application routine logic error Correct the appropriate parameters.
No output Incorrect ddname, file definitions, or message file setting Correct the appropriate parameters.
Nonzero return code from enclave Unhandled condition of severity 2, 3, or 4, or the return code was issued by the application routine Check the Language Environment message file for runtime message.
Unexpected output Conflicting library module names See the name conflict resolution steps outlined in z/OS Language Environment Programming Guide.