Python – Captura todas las excepciones

En este artículo, discutiremos cómo capturar todas las excepciones en Python utilizando las declaraciones try, excepto con la ayuda de ejemplos adecuados. Pero antes veamos diferentes tipos de errores en Python.

En general, hay dos tipos de errores en Python, es decir, error de sintaxis y excepciones . Veamos la diferencia entre ellos.

Diferencia entre error de sintaxis y excepciones

Error de sintaxis: como sugiere el nombre, este error se debe a una sintaxis incorrecta en el código. Conduce a la terminación del programa.

Ejemplo: error de sintaxis en Python

Python3

# initialize the amount variable
amount = 10000
  
# check that You are eligible to
# purchase Dsa Self Paced or not
if(amount > 2999)
print("You are eligible to purchase Dsa Self Paced")

Producción:

SyntaxError: invalid syntax

Excepciones: se generan excepciones cuando el programa es sintácticamente correcto, pero el código resultó en un error. Este error no detiene la ejecución del programa, sin embargo, cambia el flujo normal del programa.

Ejemplo: Excepción en Python

Python3

# initialize the amount variable
marks = 10000
  
# perform division with 0
a = marks / 0
print(a)

Producción:

ZeroDivisionError: division by zero

Declaración Try and Except: captura de todas las excepciones

Las declaraciones Try y Except se utilizan para capturar y manejar excepciones en Python. Las declaraciones que pueden generar excepciones se mantienen dentro de la cláusula try y las declaraciones que manejan la excepción se escriben dentro de la cláusula excepto.

Ejemplo: Python captura todas las excepciones

Python3

# Python program to handle simple runtime error
  
a = [1, 2, 3]
try:
    print ("Second element = %d" %(a[1]))
  
    # Throws error since there are only 3 
    # elements in array
    print ("Fourth element = %d" %(a[3]))
  
except:
    print ("Error occurred")
Producción

Second element = 2
An error occurred

En el ejemplo anterior, las declaraciones que pueden causar el error se colocan dentro de la declaración de prueba (segunda declaración de impresión en nuestro caso). La segunda declaración de impresión intenta acceder al cuarto elemento de la lista que no está allí y esto arroja una excepción. Luego, esta excepción es capturada por la declaración de excepción. Sin especificar ningún tipo de excepción, todas las causas de excepción dentro del bloque de prueba serán capturadas por el bloque de excepción. También podemos detectar una excepción específica. Veamos cómo hacer eso.

Captura de una excepción específica

Una declaración de prueba puede tener más de una cláusula excepto, para especificar controladores para diferentes excepciones. Tenga en cuenta que se ejecutará como máximo un controlador. Por ejemplo, podemos agregar IndexError en el código anterior. La sintaxis general para agregar excepciones específicas es:

try:
   # statement(s)
except IndexError:
   # statement(s)
except ValueError:
   # statement(s)

Ejemplo: captura de una excepción específica en Python

Python3

# Program to handle multiple errors with one
# except statement
# Python 3
  
def fun(a):
    if a < 4:
  
        # throws ZeroDivisionError for a = 3
        b = a/(a-3)
  
    # throws NameError if a >= 4
    print("Value of b = ", b)
      
try:
    fun(3)
    fun(5)
  
# note that braces () are necessary here for
# multiple exceptions
except ZeroDivisionError:
    print("ZeroDivisionError Occurred and Handled")
except NameError:
    print("NameError Occurred and Handled")

Producción

ZeroDivisionError Occurred and Handled

Si comentas la línea fun(3), la salida será

NameError Occurred and Handled

El resultado anterior es así porque tan pronto como Python intenta acceder al valor de b, se produce NameError. 

Nota: Para obtener más información, consulte nuestro Tutorial de manejo de excepciones de Python .

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *