Levantar exceções manualmente em Python

Muhammad Maisam Abbas 30 janeiro 2023
  1. Exceções com a cláusula try...except em Python
  2. Levantando exceções manualmente com a instrução raise em Python
Levantar exceções manualmente em Python

Neste tutorial, discutiremos métodos para gerar exceções manualmente em Python.

Exceções com a cláusula try...except em Python

Em Python, o programa interrompe sua execução se ocorrer um erro. A cláusula try...catch fornece um método para lidar com exceções em Python automaticamente.

Usando a cláusula try...catch, podemos continuar a execução do programa mesmo se alguma parte do código travar. O código suspeito é colocado na cláusula try. A cláusula except é usada para capturar as exceções levantadas na cláusula try. Se ocorrer uma exceção, a cláusula except é executada. Caso contrário, a cláusula except não é executada e o fluxo normal do programa continua. O exemplo de código a seguir nos mostra como podemos lidar com exceções com a cláusula try...catch em Python.

try:
    x = 1 / 0

    print(x)
except Exception as e:
    print("Exception : " + repr(e))

Resultado:

Exception : ZeroDivisionError('division by zero')

No código acima, primeiro inicializamos uma variável x, que é igual a 1/0. Portanto, uma exceção ZeroDivisionError é gerada automaticamente e o bloco except é executado.

Levantando exceções manualmente com a instrução raise em Python

Na seção acima, discutimos um método para lidar com exceções com a cláusula try...except automaticamente. Em Python, também podemos levantar exceções específicas manualmente com a instrução raise. Podemos usar a instrução raise dentro de uma instrução if para levantar uma exceção específica se ocorrer uma condição específica. O exemplo de código a seguir nos mostra como podemos levantar exceções específicas manualmente com a instrução raise em Python.

a = 1
b = 0

try:
    if b == 0:
        raise ZeroDivisionError("You cannot divide a number by zero")

        x = a / b
except Exception as e:
    print("Exception : " + repr(e))

Resultado:

Exception : ZeroDivisionError('You cannot divide a number by zero')

No código acima, primeiro inicializamos a e b e, em seguida, levantamos uma exceção ZeroDivisionError se b for igual a 0. Existem muitos tipos de exceções que podem ser levantados pela instrução raise. Algumas dessas exceções são demonstradas nos exemplos abaixo.

x = "A String variable"

try:
    if not type(x) is int:
        raise TypeError("x is not an integer")
except Exception as e:
    print("Exception : " + repr(e))

Resultado:

Exception : TypeError('x is not an integer')

O código acima levanta uma exceção TypeError se var não for uma variável do tipo inteiro. Outro tipo de exceção é mostrado no exemplo de código abaixo.

month = 13
try:
    if month > 12:
        raise ValueError("There cannot be more than 12 months in a year")
except Exception as e:
    print("Exception : " + repr(e))

Resultado:

Exception : ValueError('There cannot be more than 12 months in a year')

O código acima gera uma exceção ValueError se month for maior que 12.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Artigo relacionado - Python Exception