Python中的错误可以有两种类型,即error和exception。error是程序中的问题,程序会因此停止执行。另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程。
顾名思义,代码中引发的错误。例如语法错误,导致程序终止。
a = 10000 if(a>2999) print("~~")
当程序语法正确,但代码导致错误时,会引发异常。此错误不会停止程序的执行,但是会改变程序的正常流程。
a = 10 b = q / 0
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子句,它必须出现在所有except子句之后。只有try子句没有引发异常时,代码才会进入else块。
def test(a , b): try: c = ((a+b) / (a-b)) except ZeroDivisionError: print ("a/b result in 0") else: print (c)
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)
raise语句允许程序员强制发生特定的异常。raise中的唯一参数表示要引发的异常。这必须是异常实例或异常类(从异常派生的类)
try: raise NameError("Hi there") # Raise Error except NameError: print ("An exception")
参考:
https://www.geeksforgeeks.org/python-exception-handling/