• <li id="oiayd"><ruby id="oiayd"></ruby></li>

    <acronym id="oiayd"><strong id="oiayd"></strong></acronym>

    <acronym id="oiayd"></acronym>
    <track id="oiayd"><ruby id="oiayd"></ruby></track>
  • <track id="oiayd"><ruby id="oiayd"><menu id="oiayd"></menu></ruby></track>

  • 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基础知识】捕获多个异常”已帮助

    更多内容

    >>本文地址:http://www.seyoho.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

    日韩一级a片无卡顿

  • <li id="oiayd"><ruby id="oiayd"></ruby></li>

    <acronym id="oiayd"><strong id="oiayd"></strong></acronym>

    <acronym id="oiayd"></acronym>
    <track id="oiayd"><ruby id="oiayd"></ruby></track>
  • <track id="oiayd"><ruby id="oiayd"><menu id="oiayd"></menu></ruby></track>