%uF0A7
Opcional
: Si se activa este flag no será
obligatorio informar
el parámetro de tabla en la llamada al módulo de función.
1.6 Excepciones
Las excepciones son una serie de errores predefinidos en los
módulos de función que pueden devolver como valor de retorno de
su ejecución en la variable del si
stema SY
-
SUBRC.
Excepción:
Se indicará un nombre descriptivo para cada
posible error predefinido que va a poder retornar el módulo
de función. La posición en la tabla de excepciones se
corresponderá con el valor que devolverá en la variable SY
-
SUBRC (la p
rimera excepción definida devolverá 1, la
siguiente 2, etc.).
Por defecto siempre existe la excepción ‘OTHERS’, aunque
aparezca definida, que se utiliza para devolver un error genérico y
devuelve en la variable SY
-
SUBRC el valor siguiente al de la última
excepción creada.
Ej.: Se crea la excepción ‘SOCIEDAD_INEXISTENTE’ que será
devuelta cuando la sociedad informada en el parámetro de entrada
correspondiente no exista en la tabla estándar de sociedades.
Para devolver una excepción desde el código del mod
ulo de
función se utiliza la sentencia RAISE <excepción>, finalizando así
la ejecución de la función y devolviendo el código asociado a la
excepción en la variable SY
-
SUBRC. En caso de devolver una
excepción no se actualiza el valor de salida de los paráme
tros
CHANGING.
Con la cláusula RAISING de la instrucción MESSAGE se puede
dar la posibilidad de que el módulo de función trate el error
mostrando el mensaje de error especificado o que devuelva la
excepción correspondiente sin mostrar el mensaje de error,
en
función de si se especifica la cláusula ‘EXCEPTIONS’ en su
llamada. Si no se expecifica la cláusula, el módulo de función
mostrará los mensajes de error que tengan la cláusula ‘RAISING’,
finalizando así la ejecución del programa que realiza la llamada,
en
caso contrario se devolverán las excepciones asociadas a los
mensajes traspasando el control de los errores al programa que
realiza la llamada al módulo de función.