Python Exception Handling

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/

上一篇:python【try-exception】【装饰器】


下一篇:python学习笔记(8)异常处理