¿Cómo pasar un argumento a una excepción en Python?

Puede surgir una situación en la que se necesite información adicional a partir de una excepción planteada por Python. 
Python tiene dos tipos de excepciones, a saber, excepciones incorporadas y excepciones definidas por el usuario .
¿Por qué usar Argumento en Excepciones?  
El uso de argumentos para Excepciones en Python es útil por las siguientes razones: 

  • Se puede utilizar para obtener información adicional sobre el error encontrado.
     
  • Como el contenido de un Argumento puede variar según los diferentes tipos de Excepciones en Python, se pueden proporcionar Variables a las Excepciones para capturar la esencia de los errores encontrados. El mismo error puede ocurrir por diferentes causas, los Argumentos nos ayudan a identificar la causa específica de un error usando la cláusula excepto .
     
  • También se puede usar para atrapar múltiples excepciones, usando una variable para seguir la tupla de Excepciones. 
     

Argumentos en excepciones incorporadas:

Los siguientes códigos demuestran el uso de argumento con excepciones integradas:
Ejemplo 1: 

Python3

try:
    b = float(100 + 50 / 0)
except Exception as Argument:
    print( 'This is the Argument\n', Argument)

Producción:  

This is the Argument
 division by zero

Ejemplo 2: 

Python3

my_string = "GeeksForGeeks"
 
try:
    b = float(my_string / 20)
except Exception as Argument:
    print( 'This is the Argument\n', Argument)

Producción:  

This is the Argument
 unsupported operand type(s) for /: 'str' and 'int'

Argumentos en excepciones definidas por el usuario:

Los siguientes códigos demuestran el uso de argumentos con excepciones definidas por el usuario:
Ejemplo 1: 

Python3

# create user-defined exception 
# derived from super class Exception
class MyError(Exception):
   
    # Constructor or Initializer
    def __init__(self, value):
        self.value = value
   
    # __str__ is to print() the value
    def __str__(self):
        return(repr(self.value))
   
try:
    raise(MyError("Some Error Data"))
   
# Value of Exception is stored in error
except MyError as Argument:
    print('This is the Argument\n', Argument)

Producción:  

This is the Argument
 'Some Error Data'

Ejemplo 2: 

Python3

# class Error is derived from super class Exception
class Error(Exception):
 
    # Error is derived class for Exception, but
    # Base class for exceptions in this module
    pass
 
class TransitionError(Error):
 
    # Raised when an operation attempts a state
    # transition that's not allowed.
    def __init__(self, prev, nex, msg):
        self.prev = prev
        self.next = nex
 
try:
    raise(TransitionError(2, 3 * 2, "Not Allowed"))
 
# Value of Exception is stored in error
except TransitionError as Argument:
    print('Exception occurred: ', Argument)

Producción: 

Exception occurred:  (2, 6, 'Not Allowed')

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 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 *