• 异常处理


    异常处理

    什么是异常?

    ​ 程序在运行过程中出现了不可预知的错误 并且该错误没有对应的 处理机制 那么就会以异常的形式表现出来 造成的影响是整个程序无法正常运行

    异常的结构

    ​ 1.异常类型 NAMEError 2. 异常的信息 name 'xxx' is not defined 3.异常的位置

    异常的种类可以分为两大类

    1. 语法错误 是你程序立刻就能解决的,这种错误是不能被容忍的
      语法上的错误 发现之后应该立刻解决

    2. 逻辑错误 这种错是可以被容忍的 因为一眼看不出来
      针对逻辑上的错误 可以采用异常处理机制进行捕获**

    3. 常见的错误类型
      NAMERROR 名字错误
      SyntaxError 语法错误
      KeyError 键不存在
      ValueError 值错误
      IndexError 索引错误

    4. 如何避免
      异常处理
      在你认为可能会出现bug的代码块上方try一下:注意try内部的代码块越少越好

      try:
      	可能出错的代码
      except 出错的类型 as e:  # 将报错信息赋值给变量e
      	出错之后的处理机制
          
          错误发生之后  会立刻停止代码的运行
      执行except语句 比对错误类型
      
      # except BaseException:  # 万能异常  所有的异常类型都被捕获
      except Exception:  # 万能异常  所有的异常类型都被捕获
           print('老子天下无敌')
       else:
           print('被检测的代码没有任何的异常发生 才会走else')
       finally:
           print('无论被检测的代码有没有异常发生 都会在代码运行完毕之后执行我')
      

      主动抛异常

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

      断言

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

      自定义异常

      #9 自定义异常
      class MyError(BaseException):
           def __init__(self,msg):
               super().__init__()
               self.msg=msg
           def __str__(self):
               return '<dfsdf%ssdfsdaf>' %self.msg
      
      raise MyError('我自己定义的异常')  # 主动抛出异常其实就是将异常类的对象打印出来,会走__str__方法
      
    趁自己还没死 多折腾折腾
  • 相关阅读:
    tp学习 第一天
    Sqlmap绕WAF学习
    绕过验证码进行SQL注入
    sqlmap 命令
    内网基础知识
    运维 | Ubuntu apache2 反向代理 接flask
    re | [watevrCTF 2019]Repyc
    web | [Windows][BJDCTF 2nd]EasyAspDotNet
    web | [BSidesCF 2020]Hurdles
    web | [pasecactf_2019]flask_ssti
  • 原文地址:https://www.cnblogs.com/lddragon/p/11323932.html
Copyright © 2020-2023  润新知