zoukankan      html  css  js  c++  java
  • 异常处理其他内容

    主动抛出异常

    语法: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

  • 相关阅读:
    TCP定时器 之 重传/延迟ACK/保活 定时器初始化
    指针03-指针和字符串
    指针02
    指针01
    switch语句分析
    结构体分析
    参数、返回值、局部变量、数组分析
    多维数组分析
    循环语句分析
    if语句分析
  • 原文地址:https://www.cnblogs.com/msj513/p/9890249.html
Copyright © 2011-2022 走看看