Python基础 常见的异常类型 异常的捕获 异常的处理机制

简介: python中常见的异常类型1、ZeroDivisionError 除(或取模)零(所有数据类型)2、IndexError #序列中没有此索引3、KeyError #映射中没有这个键4、NameError #未声明/初始化对象(没有属性)5、SyntaxError #Python 语法错误6、ValueError #传入无效的参数


python中常见的异常类型
1、ZeroDivisionError     除(或取模)零(所有数据类型)
2、IndexError        #序列中没有此索引
3、KeyError      #映射中没有这个键
4、NameError     #未声明/初始化对象(没有属性)
5、SyntaxError       #Python 语法错误
6、ValueError        #传入无效的参数

数字运算异常

print(10/0) #ZeroDivisionError 除数不能为0,所以运算异常

索引异常(使用的索引没有元素)

lst=[11,22,33,44]
print(lst[4]) #IndexError 索引从0开始,lst列表最大的索引就是3

键异常(字典里没有这个键)

dic={"name":"张三","age":20}
print(dic["gender"]) #keyError 字典里没有这个键

变量异常(未命名该变量)

print(num) #NameError num变量未命名

语法错误

int a=20 #SyntaxError python语法错

传入无效参数

a=int("hello") #ValueError int()里只能放入整数,不能放入字符串
traceback模块
使用traceback模块打印异常信息
import traceback
try:

print("1.--------------")
num=10/0

except:

traceback.print_exc()

​​

Python的异常处理机制

异常捕获处理:
try: except xxx:语句 xxx为错误类型

try:用于放入容易出错的代码
except用于处理异常并正常输出后续代码,可以使代码不会报错结束,可以出现多个except语句来处理多种异常类型。
使用方式:
try:
将容易出错的代码放入其中
易出错代码
易出错代码
except 可能出现的类型: (except可多次使用)
print(捕获异常后用于提示的话语)
except 可能出现的类型:
print(捕获异常后用于提示的话语)
一般的代码块

一般代码

a=int(input("请输入第一个整数:"))
b=int(input("请输入第二个整数:"))
result=a/b
print("结果为:",result)

极容易出现报错,导致终止后面的程序,比如整除不能输入0,不能输入英文,只要输入了,那么就会报错结束程序

使用try...except的代码块

try: #将易错代码放进去

a=int(input("请输入第一个整数:"))
b=int(input("请输入第二个整数:"))
result=a/b
print("结果为:",result)

except ZeroDivisionError: #不允许被0除的异常(异常类型在程序报错时会出现,将这种异常类型放入后,出现该异常就会自动处理,而不会报错终止程序)

print("对不起,除数不允许为0")  #出现该异常后的提示

except ValueError: #输入异常,int括号里的input只能输入数字串,不能输入字符串

print("只能输入数字串")   #出现该异常后的提示

print("程序结束") #程序可能出现的异常都用except写出来了,所以不管出现什么异常,后面的程序一样运行

try...except...else结构

如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块

try块中放入可能出异常的代码块
except块中输入可能出现异常的类型,在不知道可能出现什么异常可以用BaseException来代替所有出现的异常
BaseException as e的意思是给BaseException取个别名e,在这块里使用时就可以不用再写那么长的代码了
else块在这里的意思是,如果程序未出现异常,则执行else块里的代码
try:

n1=int(input("请输入一个整数:"))
n2=int(input("请输入另一个整数:"))
result=n1/n2

except块中输入可能出现异常的类型,在不知道可能出现什么异常可以用BaseException来代替所有出现的异常

BaseException as e的意思是给BaseException取个别名e,在这块里使用时就可以不用再写那么长的代码了

except BaseException as e:

print("出错了")    #若出错了,则打印出错了
print(e)    #输出出错类型

else块在这里的意思是,如果程序未出现异常,则执行else块里的代码

else:

print("结果为:",result)    #返回结果result

try...except...else...finally结构
finally 块无论是否发生异常都会被执行,能常用来释放try块申请的资源
try:

n1=int(input("请输入一个整数:"))
n2=int(input("请输入另一个整数:"))
result=n1/n2

except块中输入可能出现异常的类型,在不知道可能出现什么异常可以用BaseException来代替所有出现的异常

BaseException as e的意思是给BaseException取个别名e,在这块里使用时就可以不用再写那么长的代码了

except BaseException as e:

print("出错了")    #若出错了,则打印出错了
print(e)    #输出出错类型

else块在这里的意思是,如果程序未出现异常,则执行else块里的代码

else:

print("结果为:",result)    #返回结果result

finally块在这里的意思是,不管上面的程序出错还是不出错,执行完后都要执行finally里的代码,然后继续执行后面的代码

finally:

print("无论是否产生异常,总会被执行的代码")

print("程序结束") #try...except...else...finally结构的代码执行完后继续正常执行后面的代码

相关文章
|
1月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
81 8
|
2月前
|
测试技术 开发者 Python
对于Python中的异常要如何处理,raise关键字你真的了解吗?一篇文章带你从头了解
`raise`关键字在Python中用于显式引发异常,允许开发者在检测到错误条件时中断程序流程,并通过异常处理机制(如try-except块)接管控制。`raise`后可跟异常类型、异常对象及错误信息,适用于验证输入、处理错误、自定义异常、重新引发异常及测试等场景。例如,`raise ValueError("Invalid input")`用于验证输入数据,若不符合预期则引发异常,确保数据准确并提供清晰错误信息。此外,通过自定义异常类,可以针对特定错误情况提供更具体的信息,增强代码的健壮性和可维护性。
|
2月前
|
Python
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
70 5
|
2月前
|
Python
在Python中,自定义函数可以抛出自定义异常
在Python中,自定义函数可以抛出自定义异常
66 5
|
2月前
|
存储 开发者 Python
自定义Python的异常
自定义Python的异常
29 5
|
2月前
|
UED 开发者 Python
Python中的异常处理机制
Python中的异常处理机制
49 2
|
2月前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
43 2
|
3月前
|
存储 索引 Python
|
2月前
|
监控 Java 开发者
Python的垃圾收集机制有哪些?
Python的垃圾收集机制有哪些?
|
3月前
|
Python
Python生成器、装饰器、异常
【10月更文挑战第15天】