Handling program errors

The actions to take in the case of program errors are usually straightforward. Typical examples of program errors are:
  1. Breaking one of the rules of the service. For example:
    • Passing parameters that are either in the wrong format or not valid
    • Violating one of the environment requirements (addressing mode, locking requirements, dispatchable unit mode, and so on)
    • Providing insufficient storage for information to be returned by the system.
  2. Causing errors related to the parameter list. For example:
    • Coding an incorrect combination of parameters
    • Coding one or more parameters on the service incorrectly
    • Inadvertently overlaying an area of the parameter list storage
    • Inadvertently destroying the pointer to the parameter list.
  3. Requesting a service or function for which the calling program is not authorized, or which is not available on the system on which the program is running.

In each of the first two cases, you can correct your program. For completeness, the return and reason code descriptions give you specific actions to perform, even when it might seem obvious what the action should be.

In the third case, you might have to contact your system administrator or system programmer to obtain the necessary authorization, or to request that the service or function be made available on your system, and the return or reason code description asks you to take that step.

Note: Generally, the system does not take dumps for errors that your program causes when issuing a system service. If you require such a dump, then it is your responsibility to request one in your recovery routine. See the topic on providing recovery in z/OS MVS Programming: Assembler Services Guide for information about writing recovery routines.