• 异常处理其他内容


    主动抛出异常

    语法:raise 异常种类(异常信息)

    age = input("请输入你的年龄:")
    if not age.isdigit():
        raise TypeError("年龄是整形")#这样就提前预知错的发生
    print("十年后,你%s"%(int(age)+10))#若不规范输入就会抛出异常

    用raise 抛出的异常也可使用try except接受

    try:
        age = input("请输入你的年龄:")
        if not age.isdigit():
            raise TypeError("年龄是整形")  # 这样就提前预知错的发生
        print("十年后,你%s" % (int(age) + 10))  # 若不规范输入就会抛出异常
    except Exception:
        print("出错了")

    断言:

    可以理解为理解断定,就是很清楚 很明确的

    什么时候使用断言

    下面的代码必须依赖上面代码的正确性

    语法

    assert 结果为BOOL的表达式

    如果值为True则继续往下执行

    为False抛出一个AssertionError 表示断言失败

    没有assert也可以使用if来实现效果,但是assert节省代码。

    li = []
    li.append("aa")
    li.append("aa")
    assert len(li)>3
    print(next(li))
    print(next(li))
    print(next(li))
    
    #

    自定义异常类型

    当系统提供的异常类型,中并没有你想要的错误匹配,这时候就需要自定义异常类型的

    语法:

    class 自定义异常的类名(BaseException):

    总结的来说:之所以自定义异常类型,是为了更具体描述你的错误,让使用者一眼就看出来

    定义:

    class UnLikeErroe(BaseException):
        def __init__(self, msg):
            self.msg = msg

    使用跟其他异常相同:

    def haha():
        yuyan = input("请输入你想说的话:")
        if yuyan == "chinese":
            print("正好听")
        else:
            raise UnLikeErroe("再说一遍")

    再try   exception 异常类名  使用 as可以接受异常对象

    try:
        haha()
    except UnLikeErroe as unlike:  # unlike 就是异常对象起别名
        print(unlike)

    异常处理的使用场景

    不应该滥用try except

    什么时候用?

    如果你知道为什么出错,应该把代码修改正确,而不是加上try except。只有当你不清楚为什么异常的时候!这时候才使用try except

  • 相关阅读:
    DM数据库disql的使用 Disql disql 达梦数据库Disql
    移动端禁止蒙层下的页面滚动
    移动端如何自动适配px
    使用Vant做移动端对图片预览ImagePreview和List的理解
    uniapp中使用uView组件库
    h5使用vuephotopreview 做全屏预览
    jsonview的实现
    PC端自适应使用rem 移动端适配升级版
    axios解决跨域问题(vuecli3.0)
    vs code 配置git path
  • 原文地址:https://www.cnblogs.com/msj513/p/9890249.html
Copyright © 2020-2023  润新知