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