Cómo usar mejor Try Excepto en Python-Especialmente para principiantes

En programación en Python, el manejo de excepciones permite que un programador habilite el control de flujo. Y no tiene. de excepciones integradas para detectar errores en caso de que su código se rompa. Usar try-except es la forma más común y natural de manejar errores inesperados junto con muchas más construcciones de manejo de excepciones. En este tutorial, podrás explorar algunas de las mejores técnicas para usar try, excepto en Python.

El manejo de errores o de excepciones en Python se puede aplicar configurando excepciones. Usando un bloque de prueba, puede implementar una excepción y manejar el error dentro de un bloque de excepción. Cada vez que el código se rompe dentro de un bloque de prueba, el flujo de código regular se detendrá y el control se cambiará al bloque excepto para manejar el error.

También Aprende a Leer el Manejo de Excepciones de Python desde Cero.

¿Por qué usar la cláusula Try-Except / Try-Except-else? Con la ayuda de try-except y try-except-else, puede evitar muchos problemas desconocidos que podrían surgir de su código. Por ejemplo, el código Python que usa el estilo LBYL (Mirar antes de saltar) puede conducir a condiciones de carrera. Aquí, la cláusula de prueba puede venir a rescatarte. Además, hay casos en los que su código depende críticamente de cierta información que podría quedar obsoleta hasta el momento en que la reciba. Por ejemplo, el código que realiza llamadas al sistema operativo.camino.existe o en cola.full puede fallar, ya que estas funciones pueden devolver datos que se vuelven obsoletos en el momento en que los usa. La opción más sabia aquí sería seguir el estilo de prueba excepto otra cosa en su código para administrar los casos anteriores de manera más confiable.

Las excepciones de elevación también están permitidas en Python. Significa que puedes lanzar o subir una excepción cuando sea necesario. Puedes hacerlo simplemente llamando desde tu código. Una vez levantada, la excepción detendrá la ejecución actual como de costumbre y subirá más en la pila de llamadas hasta que se maneje.

¿Por qué usar excepciones? No solo ayudan a resolver problemas populares como las condiciones de carrera, sino que también son muy útiles para controlar errores en áreas como bucles, manejo de archivos, comunicación de bases de datos, acceso a la red, etc.

Por lo tanto, cubriremos problemas más amplios y proporcionaremos soluciones en esta publicación. Tenga en cuenta que el manejo de excepciones es un arte que le brinda inmensos poderes para escribir código robusto y de calidad. Por lo tanto, prepárate para leer algunas notas clave sobre excepciones junto con las mejores formas de manejarlas.

Debe Leer Todo Lo Que Debe Saber Sobre El Archivo De Copia De Python .

Python: Consejos para usar Try-Except, Try-Except-Else y Más

Cómo usar mejor Try-Except en Python
Cómo usar mejor Try-Except en Python
  • Cómo manejar una excepción arbitraria
  • Capturar múltiples excepciones en un bloque excepto
  • Manejar múltiples excepciones con un bloque excepto
  • Volver a levantar excepciones en Python
  • Cuándo usar la cláusula else
  • Hacer uso de
  • Usar la palabra clave As para capturar tipos de excepción específicos
  • Mejores prácticas para subir manualmente excepciones
  • Cómo omitir errores y continuar la ejecución
  • Errores de excepción más comunes en Python
  • Ejemplos de excepciones más comunes en Python

1. Cómo manejar una excepción arbitraria

A veces, es posible que necesite una forma de permitir cualquier excepción arbitraria y también desee poder mostrar el mensaje de error o excepción.

Es fácilmente alcanzable usando las excepciones de Python. Compruebe el siguiente código. Durante la prueba, puede colocar el código dentro del bloque probar en el siguiente ejemplo.

try: #your codeexcept Exception as ex: print(ex)

Volver al principio

2. Captura de múltiples excepciones en un bloque de excepción

Puede capturar múltiples excepciones en un solo bloque de excepción. Vea el siguiente ejemplo.

except (Exception1, Exception2) as e: pass

Tenga en cuenta que puede separar las excepciones de la variable con una coma que es aplicable en Python 2.6/2.7. Pero no puedes hacerlo en Python 3. Por lo tanto, deberías preferir usar la palabra clave.

Volver al principio

3. Manejo de múltiples excepciones con un bloque de excepción

Hay muchas maneras de manejar múltiples excepciones. El primero de ellos requiere colocar todas las excepciones que es probable que ocurran en forma de tupla. Por favor, vea desde abajo.

try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))

El siguiente método es manejar cada excepción en un bloque de excepción dedicado. Puede agregar tantos bloques, excepto los que necesite. Vea el siguiente ejemplo.

try: file = open('input-file', 'open mode')except EOFError as ex: print("Caught the EOF error.") raise exexcept IOError as e: print("Caught the I/O error.") raise ex

El último pero no el menos importante es usar la excepción sin mencionar ningún atributo de excepción.

try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise

Este método puede ser útil si no tiene ninguna pista sobre la excepción posiblemente lanzada por su programa.

Volver al principio

4. Volver a subir excepciones en Python

Las excepciones una vez levantadas siguen subiendo a los métodos de llamada hasta que se manejan. Sin embargo, puede agregar una cláusula except que podría tener una llamada sin ningún argumento. Resultará en volver a rever la excepción.

el siguiente ejemplo de código.

try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise

Salida:

Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!

Volver a la parte superior

5. Cuándo usar la cláusula else

Use una cláusula else justo después del bloque try-except. La cláusula else se ejecutará solo si no se lanza ninguna excepción. La instrucción else siempre debe preceder a los bloques except.

En los bloques else, puede agregar código que desee ejecutar cuando no haya errores.

Vea el siguiente ejemplo. En este ejemplo, puede ver un bucle while que se ejecuta infinitamente. El código pide la entrada del usuario y luego la analiza usando la función incorporada. Si el usuario ingresa un valor cero, se alcanzará el bloque excepto. De lo contrario, el código fluirá a través del bloque else.

while True: # Enter integer value from the console. x = int(input()) # Divide 1 by x to test error cases try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)

Volver al principio

6. Haga uso de

Si tiene un código que desea ejecutar en todas las situaciones, escríbalo dentro del . Python siempre ejecutará las instrucciones codificadas en el . Es la forma más común de hacer tareas de limpieza. También puede asegurarse de que la limpieza llegue.

La cláusula try detecta un error. Después de ejecutar el código del bloque except, se ejecutarán las instrucciones del bloque except.

Tenga en cuenta que a siempre se ejecutará, incluso si ha regresado antes.

Vea el siguiente ejemplo.

try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")

Salida:

Error occurredThe is hit

Volver al principio

7. Utilice la palabra clave As para capturar tipos de excepción específicos

Con la ayuda de as < identificador>, puede crear un nuevo objeto. Y también puede el objeto de excepción. Aquí, en el siguiente ejemplo, estamos creando el objeto IOError y luego lo usamos dentro de la cláusula.

try: # Intentionally raise an error. f = open("no-file")except IOError as err: # Creating IOError instance for book keeping. print("Error:", err) print("Code:", err.errno)

Salida:

('Error:', IOError(2, 'No such file or directory'))('Code:', 2)

Volver a la parte superior

8. Las mejores prácticas para subir manualmente excepciones

Evite subir excepciones genéricas porque, si lo hace, también deben capturarse todas las demás excepciones más específicas. Por lo tanto, la mejor práctica es plantear la excepción más específica cerca de su problema.

Mal ejemplo.

def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()

Resultado:

Inside the except block: ValueError('Intentional - do not want this to get caught',)

Mejor Práctica:

Aquí, estamos criando a un tipo específico de excepción, no una genérica. Y también estamos usando la opción args para imprimir los argumentos incorrectos si los hay. Veamos el siguiente ejemplo.

try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)

Resultado:

('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')

Volver a la parte superior

9. Cómo omitir errores y continuar la ejecución

Idealmente, no debería hacer esto. Pero si aún quieres hacerlo, sigue el siguiente código para ver el enfoque correcto.

try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')

Salida:

Welcome to Prometheus!!!

Volver al principio

Ahora, eche un vistazo a algunas de las excepciones más comunes de Python y sus ejemplos.

Errores de excepción más comunes

  • IOError: Ocurre en errores como si un archivo no se abriera.
  • ImportError-Si un módulo de python no se puede cargar o localizar.
  • ValueError-Ocurre si una función obtiene un argumento del tipo correcto pero un valor inapropiado.
  • KeyboardInterrupt-Se activa cuando el usuario ingresa la tecla de interrupción (es decir, Control – C o tecla Supr)
  • EOFError-Se activa si las funciones de entrada (input()/raw_input()) alcanzan una condición de fin de archivo (EOF) pero sin leer ningún dato.

Volver al principio

Ejemplos de las excepciones más comunes

except IOError:print('Error occurred while opening the file.')except ValueError:print('Non-numeric input detected.')except ImportError:print('Unable to locate the module.')except EOFError:print('Identified EOF error.')except KeyboardInterrupt:print('Wrong keyboard input.')except:print('An error occurred.')

Volver al principio

Resumen – Cómo usar mejor Try-Excepto en Python

Mientras se programa, es probable que ocurran errores. Es un hecho que nadie puede ignorar. Y puede haber muchas razones para errores, como una mala entrada de usuario, permisos de archivo insuficientes, la falta de disponibilidad de un recurso de red, memoria insuficiente o, muy probablemente, el error del programador.

De todos modos, todo esto se puede manejar si su código usa el manejo de excepciones e implementarlo con construcciones como try-except, o tr-except-else, try-except-finally. Espero que hayas disfrutado leyendo el tutorial anterior.

Si te gustó la publicación, no te pierdas compartirla con amigos y en las redes sociales (facebook / twitter).

Best,
TechBeamers.



Deja una respuesta

Tu dirección de correo electrónico no será publicada.