Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

assert

Generar un error si una condición es falsa

Descripción

assert(cond) genera un error si cond es falsa.

ejemplo

assert(cond,msg) genera un error y muestra el mensaje de error msg si cond es falsa.

ejemplo

assert(cond,msg,A) muestra un mensaje de error que contiene caracteres de conversión de formato, como los utilizados con la función sprintf de MATLAB®, si cond es falsa. Cada carácter de conversión de msg se convierte a uno de los valores A.

assert(cond,errID,msg) genera un error, muestra el mensaje de error msg e incluye un identificador de error en la excepción si cond es falsa. El identificador permite distinguir errores y controlar lo que ocurre cuando MATLAB detecta los errores.

ejemplo

assert(cond,errID,msg,A) incluye un identificador de error en la excepción y muestra un mensaje de error formateado.

Ejemplos

contraer todo

Confirme que el valor, x, es mayor que un valor mínimo especificado.

minVal = 7;
x = 26;

assert(minVal < x)

La expresión se evalúa como verdadera y la aserción se aprueba.

Confirme que el valor de x se encuentra entre los valores mínimo y máximo especificados.

maxVal = 13;

assert((minVal < x) && (x < maxVal))
Error using assert
Assertion failed.

La expresión se evalúa como falsa. La aserción no se aprueba y MATLAB genera un error.

Confirme que el producto de dos números es un número de doble precisión.

a = 13;
b = single(42);
c = a*b;

assert(isa(c,'double'),'Product is not type double.')
Error using assert
Product is not type double.

Mejore el mensaje de error para que muestre el tipo de datos de c.

assert(isa(c,'double'),'Product is type %s, not double.',class(c))
Error using assert
Product is type single, not double.

Utilice la función assert para comprobar condiciones que no deberían darse en la ejecución normal de código. Si los coeficientes son numéricos, las raíces calculadas deben ser numéricas. Una ecuación cuadrática que utilice los coeficientes especificados y las raíces calculadas debe tener un valor de cero.

function x = quadraticSolver(C)

validateattributes(C,{'numeric'},{'size',[1 3]})

a = C(1);
b = C(2);
c = C(3);

x(1) = (-b+sqrt(b^2-4*a*c))/(2*a);
x(2) = (-b-sqrt(b^2-4*a*c))/(2*a);
assert(isnumeric(x),'quadraticSolver:nonnumericRoots',...
    'Computed roots are not numeric')

y1 = a*x(1)^2+b*x(1)+c;
y2 = a*x(2)^2+b*x(2)+c;
assert(y1 == 0,'quadraticSolver:root1Error','Error in first root')
assert(isequal(y2,0),'quadraticSolver:root2Error','Error in second root')

end

Argumentos de entrada

contraer todo

Condición que debe cumplirse, especificada como una expresión de MATLAB válida. Esta expresión debe ser un valor lógico o convertible a lógico. Si cond es falsa, la función assert genera un error. cond puede incluir operadores relacionales (como < o ==) y operadores lógicos (como &&, || o ~). Utilice los operadores lógicos and y or para crear expresiones compuestas. MATLAB evalúa las expresiones compuestas de izquierda a derecha, respetando las reglas de prioridad de los operadores.

Ejemplo: a<0

Ejemplo: exist('myfunction.m','file')

Información sobre el error de aserción, especificada como un vector de caracteres o un escalar de cadena. Este mensaje se muestra como el mensaje de error. Para formatear el mensaje, utilice secuencias de escape, como \t o \n. También puede utilizar cualquier especificador de formato compatible con la función sprintf, como %s o %d. Especifique valores para los especificadores de conversión mediante los argumentos de entrada A1,...,An. Para obtener más información, consulte Dar formato a un texto.

Nota

Debe especificar más de un argumento de entrada con assert si desea que MATLAB convierta caracteres especiales (como \t, \n, %s y %d) del mensaje de error.

Ejemplo: 'Assertion condition failed.'

Valor que reemplaza los especificadores de conversión de msg, especificado como vector de caracteres, escalar de cadena o escalar numérico.

Identificador para el error de aserción, especificado como un vector de caracteres o un escalar de cadena. Utilice el identificador para identificar el origen del error o para controlar un subconjunto seleccionado de los errores del programa.

El identificador de error incluye uno o más campos componente y un campo mnemónico. Los campos deben estar separados por dos puntos. Por ejemplo, un identificador de error con un campo de componente component y un campo mnemónico mnemonic se especifica como 'component:mnemonic'. Los campos de componente y mnemónico deben comenzar por una letra. Los caracteres restantes pueden ser caracteres alfanuméricos (A–Z, a–z, 0–9) y guiones bajos. No pueden aparecer caracteres de espacio en blanco en ningún lugar de errID. Para obtener más información, consulte MException.

Ejemplo: 'MATLAB:singularMatrix'

Ejemplo: 'MATLAB:narginchk:notEnoughInputs'

Sugerencias

  • Cuando genera un error, MATLAB captura información sobre él y la almacena en una estructura de datos que es un objeto de la clase MException. Puede acceder a información del objeto de excepción mediante try/catch. O, si el programa termina debido a una excepción y devuelve el control a la línea de comandos, puede utilizar MException.last.

  • Si se produce un error de aserción dentro de un bloque try, MATLAB no detiene la ejecución del programa. En este caso, MATLAB pasa el control al bloque catch.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2007a

expandir todo

Consulte también

|