当前位置:网站首页>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边栏推荐
- Execution process of SQL statement
- 【通道注意力机制】SENet
- day 7/12
- 关闭独立窗口对其他窗口同时关闭的问题
- vs动态库调试
- Compilation learning
- Pycharm - output exception of program run and default comment of added function
- No files or folders found to process
- PMP practice once a day | don't get lost in the exam -7.28 (including agility + multiple choices)
- GRC concept GRC architecture RPC lifecycle
猜你喜欢

Daily question (retrospective)

Here comes the full open source free customer service system

程序员的自我修养

R introduction example details

Jwy-32b voltage relay

听说crmeb多商户增加了种草功能?

What are the functions to be added in crmeb pro2.2?

Pyinstaller packages py as an EXE file

Shellcode writing learning environment

DAY:7/11
随机推荐
R introduction example details
Understand crmeb open source online education knowledge payment system
Shellcode writing learning environment
GRC concept GRC architecture RPC lifecycle
MIT指出公开预训练模型不能乱用
字符数组和字符串的区别
MySQL 8.0 common (continuous update)
Jy-7ga/1 voltage relay
电压继电器DY-28C
HJS-DE1/2时间继电器
day 7/12
Opencv - draw mask images of multiple instances
.net core 2.2 版本跨域配置
Dj-131/60c voltage relay
19、通道分配任务定义
一篇文章了解RSocket协议
Celery related
Data synchronization of new version
7/13 (pond sampling)
Hjs-de1/2 time relay