• 异常处理


    1、什么是异常?

      程序运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来,

      造成的影响就是整个程序无法再正常运行

    2、异常的结构:

      1.异常的类型:NameError

      2.异常的信息:name 'fdsdfsdf' is not defined

      3.异常的位置:Traceback (most recent call last):

             File "D:/python脱产10期视频/day29/01 异常处理.py", line 1, in <module>fdsdfsdf

    3、异常的机构

      分为两大类:

        1.语法错误

        2.逻辑错误

    4.常见的错误类型: 

      NAMERROR 名字错误
      SyntaxError 语法错误
      KeyError 键不存在
      ValueError 值错误
      IndexError 索引错误

    5.如何避免:

      异常处理

        在你认为可能会出现的bug的代码块上放try一下:注意try内部的代码块越少越好

        try:

          可能出错的代码

        except:出错的类型 as e: # 将报错信息赋值给变量e

          出错之后的处理机制

       except BaesException :

         # 万能异常,所有的异常类型都被捕获

      else:

        # 被检测的代码没有任何的异常发生才会走else

      finally:

        # 无论被检测的代码有没有异常发生,都会在代码运行完毕之后执行此

    6.主动抛出异常

    # 主动抛异常
    if 'egon' == 'DSB':
        pass
    else:
        raise TypeError('尽说大实话')
    # 关键字raise就是主动抛出异常

    7.断言

    l = [1,2,3]
    assert len(l) < 0  # 断言  预言
    # 猜某个数据的状态 猜对了 不影响代码执行 正常走
    # 猜错了  直接报错

    8.自定义异常

    # 自定义异常
    class MyError(BaseException):
         def __init__(self,msg):
             super().__init__()
             self.msg=msg
         def __str__(self):
             return '<dfsdf%ssdfsdaf>' %self.msg
    
    raise MyError('我自己定义的异常')  # 主动抛出异常其实就是将异常类的对象打印出来,会走__str__方法
  • 相关阅读:
    指数
    汉诺塔问题
    只用递归和当前的栈实现栈的逆序
    让你996的不是你的老板,而是其他愿意996的人
    luke towan
    2020-9-3
    2020-9-3
    springboot注解
    2020-9-2
    20200827
  • 原文地址:https://www.cnblogs.com/xiaowangba9494/p/11322422.html
Copyright © 2020-2023  润新知