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关键字能够分别处理这两种异常情况。

文章“【Python基础知识】捕获多个异常”已帮助

更多内容

>>本文地址:https://www.ujiuye.com/zhuanye/2021/69825.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

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

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME