Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Emitir advertencias y errores

Emitir advertencias

Puede emitir una advertencia para marcar las condiciones inesperadas detectadas al ejecutar un programa. La función imprime un mensaje de advertencia en la línea de comandos.warning Las advertencias difieren de los errores de dos maneras significativas:

  • Las advertencias no detienen la ejecución del programa.

  • Puede suprimir cualquier advertencia no útil.MATLAB®

Utilice la función en el código para generar un mensaje de advertencia durante la ejecución.warning Especifique el mensaje como argumento de entrada para la función:warning

warning('Input must be text')

Por ejemplo, puede insertar una advertencia en el código para comprobar la versión del software:

function warningExample1   if ~strncmp(version, '7', 1)     warning('You are using a version other than v7')   end

Lanzar errores

Puede lanzar un error para marcar problemas fatales dentro del programa. Utilice la función para imprimir mensajes de error en la línea de mandatos.error Después de mostrar el mensaje, detiene la ejecución del programa actual.MATLAB

Por ejemplo, suponga que construye una función que devuelve el número de combinaciones de elementos de los elementos.kn Tal función no tiene sentido si; no puede elegir 8 elementos si comienza con sólo 4.k > n Debe incorporar este hecho en la función para permitir que cualquier persona que utilice el problema:combinations

function com = combinations(n,k)     if k > n         error('Cannot calculate with given values')     end     com = factorial(n)/(factorial(k)*factorial(n-k)); end

Si la función recibe una entrada no válida, detiene la ejecución inmediatamente después de iniciar el mensaje de error:combinationsMATLAB

combinations(4,8)
Error using combinations (line 3)
Cannot calculate with given values

Agregue parámetros de tiempo de ejecución a sus advertencias y errores

Para que los mensajes de advertencia o de error sean más específicos, inserte los componentes del mensaje en el momento de la ejecución. La función utiliza que son los mismos que los utilizados por la función.warningconversion characterssprintf Los caracteres de conversión actúan como marcadores de posición para subcadenas o valores, desconocidos hasta que se ejecuta el código.

Por ejemplo, esta advertencia utiliza y para marcar dónde insertar los valores de variables y: Si ejecuta este comando con y, responde:%s%darraynamearraydims

warning('Array %s has %d dimensions.',arrayname,arraydims)
arrayname = 'A'arraydims = 3MATLAB
Warning: Array A has 3 dimensions.

Agregar parámetros de tiempo de ejecución a sus advertencias y errores puede aclarar los problemas dentro de un programa. Considere la función de.combinationsLanzar errores Puede producir un error mucho más informativo mediante los parámetros de tiempo de ejecución: Si esta función recibe argumentos no válidos, inicia un mensaje de error y detiene el programa:

function com = combinations(n,k)     if k > n         error('Cannot choose %i from %i elements',k,n)     end     com = factorial(n)/(factorial(k)*factorial(n-k)); end
MATLAB
combinations(6,9)
Error using combinations (line 3)
Cannot choose 9 from 6 elements

Agregar identificadores a advertencias y errores

Un identificador de mensaje proporciona una manera de hacer referencia de forma única a una advertencia o un error.

Habilite o deshabilite las advertencias con identificadores. Utilice un argumento de texto Identificativo con la función para adjuntar una etiqueta única a un mensaje:warning

warning(identifier_text,message_text)

Por ejemplo, puede Agregar una etiqueta de identificador a la advertencia anterior sobre qué versión del software se está ejecutando:MATLAB

minver = '7'; if ~strncmp(version,minver,1)   warning('MYTEST:VERCHK','Running a version other than v%s',minver) end

Agregar un identificador a un mensaje de error permite realizar pruebas negativas. Sin embargo, agregar y recuperar más información de los errores a menudo requiere trabajar con objetos.MException

Consulte también

| | |

Ejemplos relacionados

Más acerca de