Intenta atrapar en Matlab

Intenta atrapar en Matlab
El siguiente artículo explica cómo usar la instrucción Try-Catch en MATLAB®. La instrucción Try-Catch es uno de los lenguajes de programación más utilizados a nivel mundial, y su modo de ejecución es el mismo para todos ellos. Este artículo incluye ejemplos prácticos e imágenes para ayudar al lector a comprender cómo usar esta declaración para manejar los errores en la ejecución en tiempo real.

Matlab intenta atrapar sintaxis

intentar
declaraciones
Excepción de captura
declaraciones
fin

Matlab intenta descripciones y ejemplos

Una declaración Try-Catch es una herramienta que le da al programa estabilidad y robustez contra excepciones o errores en el tiempo de ejecución real. Estas excepciones o errores se pueden atrapar para que cuando ocurra uno de estos eventos, se puedan manejar de manera predecible y ordenada y no afecte el rendimiento del sistema.

La declaración Try-Catch consta de dos bloques: Try es el bloque que encierra la parte del código que puede generar una excepción o error, y la captura es el bloque que maneja estas excepciones que se procesarán de manera segura. Cuando un intento capta una excepción, pasa el control para captar para procesar. A continuación, analizaremos algunos ejemplos prácticos utilizando la declaración Try-Catch para comprender mejor cómo funciona.

Cómo detectar y procesar una excepción o error con la instrucción Try-Catch en MATLAB

Este ejemplo muestra cómo usar la instrucción Try-Catch en un error común al calcular las raíces cuadradas con la función RealSQRT (). Esta es una de las tres funciones básicas que Matlab tiene para este tipo de operación matemática, y solo acepta números reales con un signo positivo como argumentos de entrada. Si esta regla no se cumple, se genera un error.

A continuación, veamos detectar y manejar este error creando una aplicación de consola que calcule las raíces cuadradas utilizando la función RealSQRT (). Esta operación se realiza en el bloque de try. Cuando se produce un error, el control se pasa para atrapar para resolver el cálculo utilizando la función sqrt (), que acepta números negativos o complejos.

Crear un script, pegar este código y hacer clic en Ejecutar. Para cerrar la aplicación, presione Ctrl+C

Mientras que 1
indic = 'Ingrese un valor para obtener su raíz cuadrada.';
a = entrada (indicador);
intentar
x = RealSqrt (a);
atrapar
Disp 'intente encontrar un error y pasó el control para atrapar'
x = sqrt (a);
fin
disp (['la raíz cuadrada es:', num2str (x)])
fin

Una vez que la aplicación está en funcionamiento, ingresamos los valores que necesitamos para calcular la raíz cuadrada.

Si se ingresan valores negativos o complejos, en lugar de aumentar un error en la función RealSQRT (), pasará el control para atrapar, y la operación se resuelve con la función SQRT (). Cuando esto sucede, el siguiente mensaje se muestra en la consola de comando:

"Intenta encontrar un error y pasó el control para atrapar"

Cómo identificar errores con "Mexception" y administrarlos con trate de atrapar en Matlab

Aunque la identificación de excepciones con "Mexception" merece su propio artículo, explicaremos brevemente cómo usar este recurso, lo que nos ayuda a identificar errores y es un complemento efectivo al usar la declaración Try-Catch. MATLAB construye un objeto "Mexception" con información sobre el error cuando se genera un error. Esta información es muy útil, ya que podemos usarla para clasificar y manejar varios errores específicos. A continuación puede ver el contenido de "Mexception" con información sobre un error generado por la función única ().

En el siguiente ejemplo, veremos cómo recuperar esta información para procesar los errores correctamente. Para hacer esto, crearemos una aplicación de consola en la que utilizaremos la función única () para generar los errores que manejaremos en el bloque de captura y la función rápida () para ingresar los datos que serán los argumentos de entrada de únicos ().

Cuando un intento atrapa uno de estos errores, almacena su información en la "Mexception", que crearemos con el nombre "Inf_err", como se muestra a continuación.

Catch Inf_err

En el bloque Catch, enviamos un mensaje al usuario informándoles sobre la detección de un error con el siguiente mensaje "Try ha encontrado un error y el control ha pasado para atrapar".

Luego tomamos el identificador de error del objeto creado anteriormente "err_inf.identificador ". Este identificador tiene la forma de una cadena y nos da información sobre:

La función que lo generó Matlab: único

Y el error específico Desconocido

'Matlab: único: desconocidoinput'

Esta cadena será el argumento de que la condición del interruptor se comparará con cada uno de los errores predefinidos en cada caso.

cambiar inf_err.identificador
Caso 'Matlab: único: desconocidoinput'

Caso 'Matlab: único: desconocidoflag'

fin

En cada caso se dará una posible solución al error o un mensaje al usuario.

Crear un script, pegar este código y ejecutar el script. Para cerrar la aplicación, presione Ctrl+C.

ns = [1, 2, 3; 4, 5, 6];
Mientras que 1
indic = 'Ingrese un valor para ser único.';
a = entrada (indicador);
intentar
x = único (ns, a);
Catch Inf_err
Disp 'intente encontrar un error y pasó el control para atrapar';
disp (['Identificador de error:', inf_err.identificador]);
cambiar inf_err.identificador
Caso 'Matlab: único: desconocidoinput'
disp 'no se pudo encontrar la entrada especificada. Inténtalo de nuevo.';
Caso 'Matlab: único: desconocidoflag'
disp 'la función única () no reconoce la bandera:';
disp (a);
Dis 'las banderas válidas son' filas ',' primero ',' Últimas ',' estables ',' ordenadas ';
fin
fin
solicitado = 'Presione Enter para continuar';
a = entrada (indicador);
clc ();
fin

Los datos ingresados ​​a través de la solicitud se envían como el segundo argumento de entrada a la función única (). Esta entrada corresponde a las 'filas', 'primero', 'Últimas', 'estables', 'ordenadas' o 'heredadas' de esta función, por lo que generará un error si se envía una cadena que no es un único () no reconocido como una de estas banderas. También generará un error si esta entrada tiene un valor numérico. Hemos predefinido un caso en la condición del interruptor para cada uno de estos dos errores para manejar cada error por separado. En ambos casos, se envían mensajes al usuario informándoles sobre el error y las posibles soluciones.

Cuando la aplicación se esté ejecutando en la consola MATLAB, ingrese 'filas' en la solicitud y presione ENTER. En este caso, no se genera ningún error y el resultado es = único (ns, 'filas') y se muestra en la consola de comando.

En este caso, la cadena 'ABCD' se envió a unique (), y dado que no coincide con ninguna de las banderas, se generó un error.

En el bloque "Catch", la información sobre este error se recopiló y clasificó para darle un tratamiento especial, un mensaje al usuario con las opciones de bandera disponibles en la función única ().

Lo mismo en este caso en el que se envió un tipo de entrada no aceptado, esto generará un error que el bloque de "try" detecta y pasa el control al bloque "captura" donde el error se clasifica y trata; En este caso, un mensaje al usuario que informa el error y la posible solución.

Conclusión:

En este artículo, hemos explicado la declaración de captura de try en MATLAB. También dimos algunos ejemplos prácticos que demuestran el uso de la "Declaración de captura de try para manejar excepciones. También explicamos cómo clasificar los errores dentro del bloque de "captura" usando el objeto Mexception. Esperamos que haya encontrado útil este artículo de Matlab. Consulte otros artículos de Sugerencia de Linux para obtener más consejos e información.