Artículo
· 4 dic, 2023 Lectura de 2 min

Cómo crear errores definidos por el usuario

Preguntas frecuentes de InterSystems

Para crear un error definido por el usuario, hemos de preparar un XML que describa el código de error y el mensaje correspondiente que desea utilizarse como error definido por el usuario.

Hemos de establecer el código de error como un número entero negativo.

<?xml version="1.0" encoding="UTF-8" ?> 
<MsgFile Language="en">
  <MsgDomain Domain="UserErrors">
    <Message Id="-111" Name="MyError">An error has occured</Message> 
    <Message Id="-222" Name="MyError2">An error has occured 2</Message> 
  </MsgDomain>
</MsgFile>

En cuanto tengamos el archivo XML creado, hemos de cargarlo en el namespace que deseamos utilizar

set x=##class(%MessageDictionary).Import("error.xml")

Una vez cargado, podremos lanzar y presentar errores definidos por el usuario de la siguiente manera:

USER>set error=$system.Status.Error(-111) // Create error with error code -111
USER>write $system.Status.GetErrorText(error) // Output error message from error
Error <UserErrors>-111: An error has occurred
USER>do $system.Status.DecomposeStatus(error,.val)  // Set error information to array variable
USER>zwrite val
val=1
val(1)="Error <UserErrors>-111: An error has occurred"
val(1,"caller")="zError+1^%SYSTEM.Status.1"
val(1,"code")=-111
val(1,"dcode")=-111
val(1,"domain")="UserErrors"
val(1,"namespace")="TEST"
val(1,"param")=0
val(1,"stack")=$lb("e^zError+1^%SYSTEM.Status.1^1","e^^^0")
Comentarios (0)1
Inicie sesión o regístrese para continuar