Podemos encontrar en varios foros como utilizar código C# y Java para manejo de excepciones en Genexus, pero entre tanto, debes encontrar la respuesta correcta para copiar el código y luego se te olvida dónde lo guardaste o donde lo utilizaste para copiarlo de nuevo. También están las nuevas reglas de Exception_Handler y Error_Handler pero se utiliza de diferente forma.
Exception_Handler: Manejo de errores en el código
Error_Handler: Manejo de errores de conexión a la base de datos
Estas reglas están disponibles a partir de Genexus 16 U7. o pueda que quieras usar el tradicional try-catch ya sea por que te sientes más cómodo o por que tu versión de genexus no soporta estas reglas. La forma de utilizar este código es de la siguiente manera:
Declaramos una variable para el mensaje de error, en este caso &Error de tipo LongVarchar
C#:
/* Código */
//Ejemplo: &Division = &Total/0
CSharp } catch(Exception ex){ [!&Error!]=ex.ToString();
/* Control de excepción */
Msg('Hubo un error: '+&Error)
CSharp }
Java:
/* Código */
/* Control de excepción */
Msg('Hubo un error: '+&Error)
java }
Ahora viene lo interesante, agregar un atajo de teclado para que no tengas que recordar este código sino que se cree el código con un atajo de teclado.
En genexus vamos a Tools -> Options
- C#:
- Find Text: ctc
- Replace With: CSharp try{/* Código */CSharp } catch(Exception ex){ [!&Error!]=ex.ToString();/* Control de excepción */Msg('Hubo un error: '+&Error)CSharp}
- Java:
- Find Text: jtc
- Replace With: Java try{/* Código */Java } catch(Exception ex){ [!&Error!]=ex.toString();/* Control de excepción */Msg('Hubo un error: '+&Error)java }
No te olvides de declarar la variable de &Error o la que prefieras como LongVarchar para capturar el mensaje de error.