Python中的错误可以有两种类型,即error和exception。error是程序中的问题,程序会因此停止执行。另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程。
error
顾名思义,代码中引发的错误。例如语法错误,导致程序终止。
a = 10000
if(a>2999)
print("~~")
Exception
当程序语法正确,但代码导致错误时,会引发异常。此错误不会停止程序的执行,但是会改变程序的正常流程。
a = 10
b = q / 0
Try and Except in Exception Handling
a = [1, 2, 3]
try:
print ("Second element = %d" %(a[1]))
print ("Fourth element = %d" %(a[3]))
except IndexError:
print ("An error occurred")
try语句可以有多个except子句,用于为不同的异常指定处理程序。但是,最多将执行一个处理程序。
Try-Except-Else
可以在try-except块上使用else子句,它必须出现在所有except子句之后。只有try子句没有引发异常时,代码才会进入else块。
def test(a , b):
try:
c = ((a+b) / (a-b))
except ZeroDivisionError:
print ("a/b result in 0")
else:
print (c)
Finally
Python提供了一个关键字finally,它总是在try和except块之后执行。finally块总是在try块正常终止后或try块由于某些异常终止后执行。
try:
# Some Code....
except:
# optional block
# Handling of exception (if required)
else:
# execute if no exception
finally:
# Some code .....(always executed)
Raising Exception
raise语句允许程序员强制发生特定的异常。raise中的唯一参数表示要引发的异常。这必须是异常实例或异常类(从异常派生的类)
try:
raise NameError("Hi there") # Raise Error
except NameError:
print ("An exception")
参考:
https://www.geeksforgeeks.org/python-exception-handling/