Levantar exceções manualmente em Python
-
Exceções com a cláusula
try...exceptem Python -
Levantando exceções manualmente com a instrução
raiseem 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.
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