Cómo atrapar todas las excepciones en Python

Cómo atrapar todas las excepciones en Python
Los programadores frecuentemente clasifican las excepciones como fallas de código que dan como resultado errores cada vez que se ejecuta el programa. Las excepciones representan errores que tienen lugar como resultado de un script. Algunos programadores aún no pueden notar la diferencia entre errores y excepciones. La mayoría de tales errores parecen lógicos. En Python, las excepciones se capturan utilizando una lógica sencilla. Cada vez que un intérprete de Python encuentra una excepción, termina el flujo de trabajo. Se trata al pasar por el procedimiento de llamadas. El software se bloqueará si esto no está hecho. Para distinguir entre errores y excepciones, ha habido dos categorías de errores a considerar:
  • Errores de sintaxis
  • Errores lógicos (excepciones)

Error de sintaxis

Para ver el funcionamiento de los errores lógicos, primero tenemos que superar el ejemplo de error de sintaxis. Abra el terminal de la carcasa usando "Ctrl+Alt+T" desde el teclado. Después de abrir el shell, crearemos un nuevo archivo de Python. Para crear un archivo, escriba la consulta declarada a continuación que se muestra en la imagen tal como está.

Prueba de $ touch.py

Abra el archivo "prueba.py ”de su directorio local de hogar al tocarlo doble. Después de que se haya abierto el archivo, escriba el código a continuación tal como está. Primero tienes que entender este código. Hemos agregado python-apoyo a él. Después de eso, hemos inicializado una variable de diccionario "edades" para agregar dos claves con dos valores. No hemos agregado una coma entre ambas claves. Este será nuestro error de sintaxis en el tiempo de ejecución. Después de eso, hemos imprimido la clave "AQSA" y su valor del diccionario. Guarde su archivo con Ctrl+S y haga clic en el botón cruzado para dejarlo.

Ejecutemos nuestro archivo por la versión Python3 como se muestra a continuación. La imagen de salida muestra el error de sintaxis diciendo: Sintaxis no válida porque la coma falta en la declaración. Puedes ver que no hay error lógico.

Prueba de $ python3.py

Actualicemos rápidamente el código agregando una coma en la declaración para evitar errores de sintaxis. Guardar este código y cerrarlo a través del signo cruzado desde el lado derecho de la ventana.

Ejecutemos nuestro archivo nuevamente para ver el resultado de la versión Python3. La salida de la instantánea a continuación muestra la salida correcta sin sintaxis o errores lógicos.

Prueba de $ python3.py

Errores lógicos

Los errores lógicos son aquellas excepciones que ocurren en un tiempo de ejecución debido a algún error lógico en nuestro código. Al comienzo de esta guía, hemos mencionado capturar todas las excepciones al mismo tiempo. Pero para comprender ese concepto, primero necesitamos rápidamente ver la captura de una excepción a la vez. Por lo tanto, abra el terminal de carcasa y conviértalo en formato de código Python3 para usar Python en él utilizando la consulta a continuación como se muestra en la imagen.

$ python3

Ahora el terminal está listo para usar para codificar. Agregue una declaración que muestre un error lógico en él. Digamos que hemos agregado "2/0", que no es posible en matemáticas. Entonces esto debería arrojar un error lógico. Ingrese en shell y presione Entrar. La salida muestra el "ZeroDivisionError" porque cualquier cosa dividida por cero no puede devolver una respuesta.

>>> 2/0

Tomemos otro ejemplo de atrapar una sola excepción en la terminal. Abra un archivo que ni siquiera se crea o se encuentra en el directorio local actual de Linux como se muestra a continuación. Lanzará una excepción de "FileNotFoundError" en el momento de ejecución porque no hay dicho archivo en nuestro sistema.

>>> Abrir ("Dos.TXT")

Ejemplo: excepciones de captura

Finalmente! Es hora de obtener todas las excepciones en un solo lugar. Por lo tanto, abra la prueba de archivo de Python.PY de su directorio de inicio actual del sistema Linux. Ahora escriba el código que se muestra a continuación. Este código contiene una lista "L" con diferentes tipos de elementos en él. Hemos usado un bucle "para" para obtener cada valor de la lista y aplicarle una declaración de prueba. La declaración de prueba primero imprimirá ese elemento desde la lista. La siguiente línea convertirá ese elemento a tipo entero primero y luego dividirá 1 con ese elemento convertido. Después de esto, hemos utilizado la instrucción excepto que imprimirá el nombre de excepción que ocurrió debido a la declaración "Try" usando un SYS.método esc_info (). Se imprimirá otra cadena, y luego, después de la declaración "excepto", el cuerpo, hemos inicializado una declaración de impresión para imprimir el resultado de la división que se ha realizado para probar la declaración. Presione Ctrl+S para guardar su archivo y presione en el botón cruzado para cerrarlo rápidamente. Ahora abra el terminal para ver el funcionamiento de nuestro código.

Ejecutar la consulta a continuación para ejecutar este archivo. La salida muestra el resultado de la instrucción de impresión "El resultado se usa en la instrucción" Prueba "para cada elemento de lista. Como los dos primeros elementos de la lista son variables de cadena y multype, la división no puede ocurrir. Esto lleva a diferentes errores. La declaración del primer valor "excepto" se ha ejecutado y muestra los nombres de errores utilizando el SYS.método exc_info (). Debido a la excepción, la tercera declaración de impresión de la cláusula "excepto" se ejecutará para los dos primeros elementos de la lista. Pero puede ver en la salida que el resultado para el tercer valor no arroja ninguna excepción. Esto se debe a que el tercer elemento de la lista es un entero, y se puede dividir en 1 perfectamente. La declaración excepto no se ejecutó en este caso; Por lo tanto, el control se ha dado a la declaración de impresión más externa, y genera el valor resultante generado por la división.

Conclusión

Hemos cubierto la sintaxis y los errores lógicos en este artículo. Lo más importante es que hemos discutido el método para atrapar todas las excepciones en nuestro artículo a través del "SYS.Uso del método exc_info () ".