400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > python > 【Python基础知识】捕获多个异常

【Python基础知识】捕获多个异常

  • 来源:
  • 2021-08-30 16:38:09
  • 阅读()
  • 分享
  • 手机端入口

除了可以捕获到指定的异常和没有发生异常这两种情况外,还有第三种情况,就是在try和except之间的代码块中,发生了异常,但不是指定的异常:

  1. try
  2.     # 将输入x和y的代码放进try中,其余不变 
  3.     x = int(input('请输入被除数:')) 
  4.     y = int(input('请输入除数:')) 
  5.     result = x / y 
  6.     print('结果为{}'.format(result)) 
  7. except ZeroDivisionError: 
  8.     print('除数不能为零'
  9. print('=' * 30

尝试输入被除数为一个不能转换为整数的字符串,如字母'c':

  1. 请输入被除数:c 
  2. Traceback (most recent call last): 
  3.   File "example.py", line 2in <module> 
  4.     x = int(input('请输入被除数:')) 
  5. ValueError: invalid literal for int() with base 10'c' 

Python解释器提示出错了,ValueError,而上述代码只能捕获ZeroDivisionError,这就是第三种情况,如果发生了异常,但不是指定的ZeroDivisionError,Python解释器仍然报错(除非在外层的try-except语句中处理了这个异常)。

如果想同时处理这两种异常,那么可以将这两种异常名称全部写在except语句后面,用逗号分隔开,并用括号括起来:

  1. try
  2.     x = int(input('请输入被除数:')) 
  3.     y = int(input('请输入除数:')) 
  4.     result = x / y 
  5.     print('结果为{}'.format(result)) 
  6. except (ZeroDivisionError, ValueError): 
  7.     print('除数不能为零, 且被除数与除数必须为数字'
  8. print('=' * 30

运行修改后的程序,输入被除数为'c':

  1. 请输入被除数:c 
  2. 除数不能为零, 且被除数与除数必须为数字 
  3. ============================== 

由此可见,成功处理了ValueError。再次运行程序,试试它还能不能处理ZeroDivisionError:

  1. 请输入被除数:10 
  2. 请输入除数:0 
  3. 除数不能为零, 且被除数与除数必须为数字 
  4. ============================= 

可以同时处理这两种异常,要处理更多的异常也是如此,只要在括号中添加待处理的异常即可。除此之外,还可以使用多个except关键字,分别处理这两种异常的情况,这样做的好处是可以根据不同的异常进行不同的处理:

  1. try
  2.     x = int(input('请输入被除数:')) 
  3.     y = int(input('请输入除数:')) 
  4.     result = x / y 
  5.     print('结果为{}'.format(result)) 
  6. except ZeroDivisionError:   # 处理ZeroDivisionError 
  7.     print('除数不能为零!'
  8. except ValueError:   # 处理ValueError 
  9.     print('除数与被除数必须为数字!'
  10. print('=' * 30

测试是否能处理这两种异常,首先测试是否处理ValueError:

  1. 请输入被除数:s 
  2. 除数与被除数必须为数字! 
  3. ============================== 

然后测试是否处理ZeroDivisionError:

  1. 请输入被除数:10 
  2. 请输入除数:0 
  3. 除数不能为零! 
  4. ============================== 

由此可见,使用两个except关键字能够分别处理这两种异常情况。

学习疑问申请解答
您的姓名
您的电话
意向课程
 

中公优就业

IT小助手

扫描上方二维码添加好友,请备注:599,享学习福利。

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,享学习福利
QQ交流群
在线疑问解答
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
享学习福利

测一测
你适合学哪门IT技术?

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
 
课程资料、活动优惠 领取通道