2021-01-28

Python 学习

Task 03异常处理

一、异常介绍
·异常是指在语法正确的前提下,程序运行时报错就是异常。
·当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

try…expect
首先,执行try子句(在关键字try和关键字except之间的语句)
如果没有异常发生,忽略except子句,try子句执行后结束。
如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。最后执行try语句之后的代码。

try#有可能出现异常的代码
expect:
#处理异常时的代码
例子
a = input('请输入被除数:')
b = input('请输入除数:')
try:
    a = int(a)
    b = int(b)
    c = a / b
    print('商为:%d'%c)
except:
    print('输入有误')

当输入正确是执行try的语句,输入错误则跳过try执行except后的语句

  1. try - except - finally 语句
    不管try子句里面有没有发生异常,finally子句都会执行。
    如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。
try:
    正常的操作
except
   发生以上多个异常中的一个,执行这块代码
else:
    如果没有异常执行这块代码

  1. try - except - else 语句
try:
    检测范围
except:
    出现异常后的处理代码
else:
    如果没有异常执行这块代码

使用多个except,捕获多个异常

结构如下:

try:
	被监控的、可能引发异常的语句块

except Exception1:
	处理Exception1的语句块
except Exception2:
	处理Exception的语句块

例子

#测试try...多个except结构

try:
    a = input('请输入一个被除数:')
    b = input('请输入一个除数:')

    c = float(b)/float(a)
    print(c)
except ZeroDivisionError:
    print('异常,不能除以0')
except ValueError:
    print('异常,不能讲字符串转化成数字')
except BaseException as e:
    print(e)
    print('异常出错!')
    
》》》
请输入一个被除数:0
请输入一个除数:0
异常,不能除以0


raise语句的用法
当程序出错时,python会自动触发异常,也可以通过raise语句触发异常;一旦执行了raise语句,之后的语句不再执行;但如果加入try…excepet…finally语句,except里的语句会被执行,finally一样也会被执行。

你可能感兴趣的:(python)