Python基础——异常处理,一文秒懂

2021/4/10 1:25:08

本文主要是介绍Python基础——异常处理,一文秒懂,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

异常

常见异常

类名描述
Excepion所有异常的基类
AttributeError特性引用或者赋值失败时出现
IOError试图打开不存在的文件时出现
IndexError在使用序列中不存在索引时出现
KeyError在使用映射中不存在的键时出现
NameError找不到名字(变量)时出现
SyntaError在代码错误时出现
TypeError在内建操作或者函数应用于错误类型时出现
ValueError在内建操作或者函数应用于正确类型的对象,但是该对象使用不合适的值时出现
ZeroDivisionError在除法或者模操作的第二个参数为零时出现

处理异常,捕获异常

try:被检测的语句

​ pass :空语句只占位

except :处理异常的语句

“try”子句块中编写可能出现异常的语句,“ except ”子句中的语句块处理处理异常,如果“ try ”中语句出现异常并成功被“ except ”中语句成功处理,就不会因报错使程序终止,具体效果如下:

try:
     num1 = float(input("请输入第一个数字:"))
     num2 = float(input("请输入第二个数字:"))
     print(num1,"/",num2,"=",num1/num2)
except ZeroDivisionError:
    print("输入有误,分母不能为零!")
except ValueError:
    print("输入类型有误")
运行结果1、(出现分母为零的异常)
请输入第一个数字:2
请输入第二个数字:0
输入有误,分母不能为零!
运行结果2、(出现输入类型错误)
请输入第一个数字:w
输入类型有误
运行结果3、(无异常)
请输入第一个数字:9
请输入第二个数字:7
9.0 / 7.0 = 1.2857142857142858


    

获取异常信息

精确捕获需要把子类异常放在父类异常之前,在不知道具体的异常信息是,可以使用所有异常的基类“ Excepion ”去处理异常使用“ as ”去获取具体的异常信息,具体操作如下

try:
    list_data= [1,2,3,4]
    print(list_data [8])
except Exception as e :
    print(e)

输出结果:
list index out of range#列表索引超出范围


try:
   1/0
except Exception as e :
    print(e )
输出结果:
division by zero

raise :主动抛出一个异常

try:
  raise ZeroDivisionError("信息")
except Exception as e :
    print(e )
输出结果:
信息

finally 无论有没有异常都会执行,一般都是一些关闭或者清理的操作

else在finally前面except后面,没有异常就会执行else的语句

try:
     num1 = float(input("请输入第一个数字:"))
     num2 = float(input("请输入第二个数字:"))

except ZeroDivisionError:
    print("输入有误,分母不能为零!")
except ValueError:
    print("输入类型有误")
else: print(num1,"/",num2,"=",num1/num2)
finally:print("程序结束")
运行结果1、:(无异常)
请输入第一个数字:7
请输入第二个数字:9
7.0 / 9.0 = 0.7777777777777778
程序结束
运行结果2、:(有异常)
请输入第一个数字:w
输入类型有误
程序结束


这篇关于Python基础——异常处理,一文秒懂的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程