La emisión de excepciones basadas en clases se realiza mediante la sentencia RAISE EXCEPTION. Existen dos variantes de esta sentencia.
Variantes de la sentencia RAISE EXCEPTION…
RAISE EXCEPTION TYPE <exception_class> [EXPORTING …].
Esta sentencia crea un nuevo objeto de excepción que es una instancia de la clase
<exception_class>.
RAISE EXCEPTION <object_ref>.
Esta sentencia utiliza un objeto de excepción existente al cual señala <object_ref>.
El objeto de excepción se creó directamente utilizando una sentencia CREATE OBJECT o se interceptó en una sentencia anterior CATCH… INTO …statement.
Vamos a crear en un programa ejecutable la clase local LCL_CHECK_USER y declaramos en la sección pública un método de instancia que emita una excepción del tipo ZCX_ACCESO_LOGALI. En la firma del método creamos un parámetro IMPORTING de tipo SYUNAME y utilizamos la bifurcación lógica IF/ENDIF en la implementación del método para emitir la excepción solo cuando se llama al método con el nombre de su usuario SAP.