Programación y secuencias de comandos

Manejo de excepciones de Python

Introducción

Python te hará saber cuando te equivocas con la sintaxis. Inmediatamente fallará y no permitirá que su programa se ejecute.

¿Qué pasa cuando su código tiene un tipo diferente de problema?? Se llaman excepciones, y tienden a ser más difíciles de atrapar. Depende de usted reconocer situaciones en las que HEY podría aparecer y atraparlas para evitar que su programa se bloquee por completo.

Imagine un escenario en el que necesite la entrada del usuario. ¿Desea que su programa se bloquee cada vez que un usuario confirma algo o entra en algo erróneo?? Eso está lejos de ser ideal. Como sabes que podría haber un problema allí, puedes decirle a Python que busque uno y recuperarte con gracia.

Intenta y excepto

Cuando sabe que existe la posibilidad de que aparezca una excepción, le pide a Python que pruebe el código y busque una excepción. Eche un vistazo en el contexto del ejemplo de Número desde antes.

intente: número = int (input ("Ingrese cualquier número:")) excepto: imprimir ("Eso no funcionó ...") 

Ahora, en lugar de bloquear, usted continuará, incluso si el usuario entra basura.

También puede decirle a Python exactamente qué tipo de excepción debe buscar. En este caso, sería un ValueError.

Prueba: número = int (input ("Ingrese cualquier número:")) excepto ValueError: imprime ("No ingresó un número!") 

Si Python sabe qué tipo de excepción está buscando, puede decirle cómo responder en consecuencia.

Haz lo tuyo

Puede hacer sus propias excepciones escribiéndolas como clases que heredan del Excepción clase base o cualquiera de las otras clases de excepción.

Clase NewException (excepción): pase 

Debe incorporar en su programa cómo usar sus excepciones personalizadas.

Elevar excepciones

Hay una opción para elevar manualmente las excepciones con aumentar.

Prueba: Levante NewException excepto NewException: Imprimir ("Falló según lo planeado!") 

Múltiples excepto

Si espera que pueda haber más de una excepción, puede construir múltiples con intentar. Comience haciendo un par de excepciones personalizadas.

Class ExceptionA (Exception): Pass Class ExceptionB (excepción): Pase 

Ahora, úsalos con intentar.

Prueba: elevar la excepciónb excepto (excepcionA, excepcionb): imprimir ("Era A o B") 

Por supuesto, eso no es lo mejor porque en un escenario real, no sabrías qué excepción realmente ocurrió.

Intente usar separado excepto cláusulas en su lugar.

Pruebe: elevar la excepciónb excepto excepción: imprimir ("ExceptionA ocurrió") excepto ExceptionB: imprime ("ExceptionB ocurrió") excepto: Imprimir ("Algo más sucedió ...") 

El tercero excepto actúa para atrapar cualquier otra excepción. Ese es el comportamiento predeterminado cuando no se da una excepción específica.

Más y finalmente

Hay dos cláusulas adicionales para manejar lo que sucede después de que se manejan las excepciones. Ayudan a su código a responder a las excepciones.

El demás La cláusula le permite ejecutar código solo si no se ha planteado una excepción.

Prueba: número = int (input ("Ingrese cualquier número:")) excepto ValueError: imprime ("No ingresó un número!") else: imprimir (número ** 2) 

Solo desea intentar realizar una operación en el número si se ingresa uno.

El finalmente La causa se ejecutará independientemente de cualquier excepción. Siempre se ejecutará al final del intentar bloquear.

Prueba: número = int (input ("Ingrese cualquier número:")) excepto ValueError: imprime ("No ingresó un número!") else: imprimir (número ** 2) Finalmente: imprimir (" Esto siempre se ejecutará.") 

Pensamientos de cierre

Es importante entender qué puede salir mal con sus programas. Es igual de importante saber que la cosa saldrá mal. Al contabilizar las excepciones, puede hacer que su código sea lo más estable posible y no frustrar a sus usuarios.

Ejercicios

  1. Cree un código que plantee una excepción no controlada.
  2. Use un bloque de prueba para manejar esa excepción.
  3. Crear una clase de excepción personalizada
  4. Elevar esa excepción personalizada en un bloque de try.
  5. Cree un bloque de prueba con un código que solo se ejecuta si no se plantea una excepción.
Manipulación de la fecha con yest
Yest es una gran herramienta que permite al usuario hacer algunas manipulaciones complejas de fecha al emplear AB fácil de entender sintaxis. No es un...
Cómo hacer que wdiddle3 establezca un temporizador iddle para la unidad WD Ears
Aquí hay pasos fáciles de seguir sobre cómo deshabilitar y establecer un temporizador para el estacionamiento para la cabeza con WD Ears Drive. Para h...
Configuración de HP OfficeJet - Ubuntu Linux Jaunty
Aquí hay una instalación rápida de la impresora HP OfficeJet en Ubuntu Linux JAUNTU # apt-get install hplib habilita x-window a root $ xhost + # hp-se...