• 异常 try ... expect ...


    异常的概念

    代码执行产生错误,无法继续

    异常的产生

    异常处理的目标:代码出现问题,不能让代码停止,继续运行,我们可以来处理这个异常
    方案1:
        if判断:未卜先知----要写if,后面跟着的条件是已知的------事前处理
        缺点:如果出现没有预料到底异常,或报错
    方案2:人体免疫系统----异常机制
        事后处理:出现问题,我们来处理---解决问题  

    异常捕获与处理

    方法一:类似if,可以预知异常

    while True:
        num = input('请输入一个整数: ').strip()
        try#捕获下面语句的异常
           
    print('100/{} = {}'.format(num,100/int(num)))
        except ZeroDivisionError: #一种已知的异常,其他异常无法捕获
           
    print('除数不能为0,请重新输入!')
        except ValueError as error:  #Error异常是一个类函数
           
    print('除数为数字,请重新输入!',error)

    方法二:

    while True:
        num = input('请输入一个整数: ').strip()
        try#捕获下面语句的异常
           
    print('100/{} = {}'.format(num,100/int(num)))
        except Exception: #未知的异常,异常的父类
           
    print('异常了,我来处理')

    方法三:可以输出异常

    while True:
        num = input('请输入一个整数: ').strip()
        try#捕获下面语句的异常
           
    print('100/{} = {}'.format(num,100/int(num)))
        except Exception as ex: #未知的异常,异常的父类
           
    print('异常了,我来处理',ex)

    方法四:较为通用

    while True:
        num = input('请输入一个整数: ').strip()
        try#捕获下面语句的异常
           
    print('100/{} = {}'.format(num,100/int(num)))
        except:
            print('异常了,我来处理')

    方法五:同时有已知异常和未知异常的捕获

    while True:
        num = input('请输入一个整数: ').strip()
        try#捕获下面语句的异常
           
    print('100/{} = {}'.format(num,100/int(num)))
        except ZeroDivisionError:  # 一种已知的异常,其他异常无法捕获
           
    print('除数不能为0,请重新输入!')
        except ValueError as error:  # Error异常是一个类函数
           
    print('除数为数字,请重新输入!', error)
        except:
            print('异常了,我来处理')

    方法六:追溯详细的日志

    import traceback
    while True:
        num = input('请输入一个整数: ').strip()
        try#捕获下面语句的异常
           
    print('100/{} = {}'.format(num,100/int(num)))
        except:
            print('异常了,我来处理',traceback.format_exc()) #详细的报错信息,可以添加到日志中

    例如:

    import traceback
    try:
        fo = open('xx.txt')
    except:
        print('xx.txt文件不存在')

  • 相关阅读:
    mysql获取当前时间,及其相关操作
    notepad++ 样式随我变!
    MySQL索引的创建、删除和查看
    so easy 的弹出层——使用jquery
    mysql获取当前时间,及其相关操作
    侯捷大师畅谈技术人生与读书感悟
    《海量数据库解决方案》之聚簇表的代价
    博文视点大讲堂第44期——招聘真相全揭秘 圆满结束
    程序员修炼道路上的“葵花宝典”——博文视点大讲堂42期快乐结束
    众专家推荐
  • 原文地址:https://www.cnblogs.com/like1824/p/12796329.html
Copyright © 2020-2023  润新知