当前位置:网站首页>try...except异常处理语句(6)
try...except异常处理语句(6)
2022-07-28 14:33:00 【WHJ226】
目录
在程序运行过程中,经常会遇到各种各样的错误,这些错误统称为“异常”。
1. 异常
| 异常 | 描述 |
| SyntaxError:invalid syntax | 无效语法 |
| NameError | 尝试访问一个没有声明的变量引发的错误 |
| IndexError | 索引超出序列范围引发错误 |
| IndentationError | 缩进错误 |
| ValueError | 传入的值错误 |
| KeyError | 请求一个不存在的字典关键字引发错误 |
| IOError | 输入输出错误 |
| ImportError | 当import语句无法找到模块引发的错误 |
| AttributeError | 当尝试访问未知的对象属性时引发的错误 |
| TypeError | 类型不合适引发的错误 |
| MemoryError | 内存不足 |
| ZeroDivisionError | 当除数为0时引发的错误 |
2. 异常处理
2.1 try...except
在使用时,把可能产生异常的代码放在try语句块中,把处理结果放在except语句块中,这样,一旦try语句块中的代码出现错误,就会执行except语句块中的代码;但如果try语句块中的代码没有错误,将不执行except语句块中的代码。
语法格式如下:
try:
block1
except[ExceptionName[as alias]]:
block2
#block1:表示可能出现错误的代码块
#ExceptionName[as alias]:可选参数,用于指定要捕获的异常。ExceptionName表示要捕获的异常名称,as alias记录异常具体内容的别名。
#block2:进行异常处理的代码块例如:
处理前:
def division(a,b):
result = a/b
print(result)
division(4,2)
division(4,0)运行结果如下:
2.0
Traceback (most recent call last):
File "E:\PYTHON\base4.py", line 25, in <module>
division(4,0)
File "E:\PYTHON\base4.py", line 21, in division
result = a/b
ZeroDivisionError: division by zero处理后无异常:
def division(a,b):
result = a/b
print(result)
if __name__ == '__main__':#规定,主程序,默认执行以下代码
try:
division(4,2)
print('成功了,除数正常')
except ZeroDivisionError:
print('出错了,除数不能为0')运行结果如下:
2.0
成功了,除数正常处理后捕获异常:
def division(a,b):
result = a/b
print(result)
if __name__ == '__main__':#规定,主程序,默认执行以下代码
try:
division(4,0)
print('成功了,除数正常')
except ZeroDivisionError:
print('出错了,除数不能为0')运行结果如下:
出错了,除数不能为02.2 try...except...else
try...except...else语句,else语句用于指定当try语句块中没有发现异常时要执行的语句块。
例如:
def division(a,b):
result = a/b
print(result)
if __name__ == '__main__':#规定,主程序,默认执行以下代码
try:
division(4,2)
except ZeroDivisionError:
print('出错了,除数不能为0')
else:
print('成功了,除数正常,一切顺利!')运行结果如下:
2.0
成功了,除数正常,一切顺利!2.3 try...except...finally
如果程序中有一些在任何情形下都必须执行的代码,那么可以将它放在finally语句的代码块中。
例如:
def division(a,b):
result = a/b
print(result)
if __name__ == '__main__':#规定,主程序,默认执行以下代码
try:
division(4,2)
except ZeroDivisionError:
print('出错了,除数不能为0')
else:
print('成功了,除数正常,一切顺利!')
finally:
print('over')运行结果如下:
2.0
成功了,除数正常,一切顺利!
over边栏推荐
猜你喜欢

Svg verification code recognition experience

百度提出动态自蒸馏方法,结合交互模型与双塔模型实现稠密段落检索

Learn PHP reflection classes from ThinkPHP remote code execution

MPLS LDP的原理与配置

腾讯面试之--请你设计一个实现线程池顺序执行

sql语句的执行流程

JOGY-61电压继电器

About the reptile thing

In 2022, the average salary of global programmers was released, and China ranked unexpectedly

Crmeb Standard Edition window+phpstudy8 installation tutorial (II)
随机推荐
电压继电器DY-28C
QCustomPlot绘图工具常用方法
Editor in ArcGIS Pro
新版数据同步问题
crmeb标准版附带的客服系统
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME)
Pyinstaller packages py as an EXE file
8、实时数据备份和实时时钟功能实现
Qt信号与槽的五种连接方式
Understand crmeb open source online education knowledge payment system
crmeb v4.3部署流程
MIT指出公开预训练模型不能乱用
Grpc frequently asked questions
JDS-12时间继电器
The subst command mirrors a folder to a local disk
Jogy-61 voltage relay
字符数组和字符串的区别
CANoe使用教程
Srtt-110vdc-4h-c time relay
树上启发式合并简单题