4D v13.4ASSERT |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v13.4
ASSERT
|
ASSERT ( expresionBool {; textoMensaje} ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
expresionBool | Booleano |
![]() |
Expresión booleana | |||||
textoMensaje | Texto |
![]() |
Texto del mensaje de error | |||||
El comando ASSERT permite ubicar una aserción en el código de un método.
Una aserción es un instrucción insertada en el código que es responsable de detectar posibles anomalías durante su ejecución. El principio consiste en verificar que una expresión es verdadera en un momento dado y en caso contrario, producir una excepción. Las aserciones se utilizan sobre todo para detectar casos que no deberían ocurrir nunca. Principalmente se utilizan para detectar bugs de programación. Es posible activar o desactivar globalmente todas las aserciones de una aplicación (por ejemplo de acuerdo al tipo de versión) vía el nuevo comando SET ASSERT ENABLED.
Para mayor información sobre aserciones en programación, consulte el artículo de Wikipedia: http://en.wikipedia.org/wiki/Assertion_(computing)
El comando ASSERT evalúa la expresión booleana pasada como parámetro. Si la expresión es verdadera, no pasa nada. Si es falsa, el comando desencadena el error -10518 y muestra el texto de la aserción precedido del mensaje "Aserción fallida:". Puede interceptar este error vía un método instalado utilizando el comando ON ERR CALL, para por ejemplo alimentar un archivo de historial.
El comando acepta un segundo parámetro opcional que puede utilizarse para proporcionar un texto que se mostrará en el mensaje de error en lugar de la expresión booleana cuando sea falsa.
Antes de efectuar operaciones en un registro, el desarrollador quiere asegurarse de que está cargado en modo lectura/escritura:
READ WRITE([Tabla 1])
LOAD RECORD([Tabla 1])
ASSERT(Not(Locked([Tabla 1])))
// dispara el error -10518 si el registro está bloqueado
Una aserción permite probar los parámetros pasados a un método de proyecto para detectar los valores aberrantes. En este ejemplo, se utiliza un mensaje de alerta personalizado.
// Método que devuelve el número de un cliente en función de su nombre pasado en $1
C_TEXT($1) // Nombre del cliente
ASSERT($1#"";"Búsqueda de un nombre de cliente vacío")
// Un nombre vacío en este caso es un valor aberrante
// Si la aserción es falsa, se mostrará en la caja de diálogo el error:
// "Aserción fallida: búsqueda de un nombre de cliente vacía"
Producto: 4D
Tema: Interrupciones
Número
1129
Lista alfabética de los comandos
Creado por: 4D v12
Asserted
Get assert enabled
SET ASSERT ENABLED