Cita:
Empezado por GustavoCruz
en el código no sé cómo capturar la excepción de tal manera que sólo me aparezca el texto de la excepción sin que me diga el resto de cosas, ej.
nombre de la excepción, trigger en el cual se ha lanzado, ubicación de la línea de código...
yo sólo quiero la descripción del error "No puedes eliminar el registro porque..."
|
Si te pone esa información es porque le dices que la ponga. La clase Exception tiene unas cuantas propiedades, la principal de ellas es "Message", que es la que contiene el mensaje de error. El resto de propiedades tienen información adicional, que a veces no es necesaria o deseable.
También has de notar que no es obligatorio usar el objeto lanzado. Incluso puedes hacer:
Código Delphi
[-] TRY
RAISE Exception.Create ('Esta es una excepción lanzada por mi.')
EXCEPT
Application.MessageBox ('Hubo una excepción', 'Ignorante')
END;
Ese código mostrará el mensaje "[Ignorante] Hubo una excepción" independientemente de lo que haya en el objeto de excepción. De todas formas, no es recomendable. Mejor usar correctamente las excepciones:
Código Delphi
[-] TRY
...
IF IntentoBorrarYNoDebe THEN
RAISE Exception.Create ('¡No puede eliminar eso!');
...
EXCEPT
ON Error: Exception DO Application.MessageBox (Error.Message, 'Error')
END;
Así mostrará el mensaje de error, y únicamente el mensaje de error.