python异常处理

python异常处理,第1张

目录

异常是什么

常见异常

python异常处理语句

注意:

rasie

实践时注意事项


异常是什么

在调式python程序时,会经常报出异常,也可以理解为bug,当程序遇到异常时,程序则会停止运行,异常的出现的原因一方面是在写的过程中因为粗心语法、逻辑等发生错误,这种情况经过调式修改基本上都可以解决,另一方面是有些异常是不可避免的,这个时候就可以对异常进行捕捉,以防止程序停止运行。

常见异常
  • BaseException
    • 所有异常的基类
      • SystemExit
        • 解释器请求退出
      • KeyboardInterrupt
        • 用户中断执行(通常是输入^C)
      • GeneratorExit
        • 生成器(generator)发生异常来通知退出
      • Exception
        • 常规异常的基类
          • NameError
            • 访问的变量不存在
          • AssertionError
            • 断言语句(assert)失败
          • OverflowError
            • 数值运算超出最大限制
          • AttributeError
            • 对象没有这个属性
          • OSError
            • *** 作系统产生的异常
          • FloatingPointError
            • 浮点计算错误
          • SyntaxError
            • Python语法错误
          • ImportError
            • 导入模块/对象失败
          • TypeError
            • 不同类型间的无效 *** 作
          • IndexError
            • 序列中没有此索引(index)
          • ValueError
            • 传入无效的参数
          • IOError
            • 输入/输出 *** 作失败
          • ZeroDivisionError
            • 除(或取模)零 (所有数据类型)
          • KeyError
            • 映射中没有这个键,建议使用dict.get()方法
          • MemoryError
            • 内存溢出错误(对于Python 解释器不是致命的)
python异常处理语句

语句结果如下:

try:
    代码1

except 异常1:
    代码2

except 异常2:
    代码3

else:
    代码4

finally:
    代码5

首先运行try内的代码1,如果代码1中出现了异常1,就运行代码2,如果出现了异常2,就运行代码3,以此类推。反之当代码1中没有出现异常,则运行代码4,finally中的语句代码5是最后运行的,是不管有没有异常都会运行。

注意:
  • except语句不是必须,finally语句也不是必须,但是两者必有一个,否则就没有try的意义了
  • except语句可以有多个,python会按照except语句的顺序依次匹配你所指定的异常,如果异常已经处理就不会再进入到后面的Except.
  • except语句可以用元组形式用时指定多个异常
  • except语句后面如果不指定异常类型,则默认捕捉所有异常,可以通过logging或这sys模块获取当前
rasie

作用是可以抛出异常。简单说就是可以主动触发异常。

格式:

raise[Exception[,args[,Traceback]]]

 注意:

  • 如果要捕获异常重新抛出,请使用rasie, 后面不要带任何参数或者信息
  • 不建议捕获并抛出同一个异常.
实践时注意事项
  • 只处理你所知道的异常,避免捕获到所有的异常之后吞掉它们
  • 抛出异常之后应该说明原因,有时候你知道这个异常类型也猜不出所以然.
  • 避免在try语句块中干一些没有意义的事情,捕获异常也是需要成本的.
  • 不要使用异常来控制流程,因为你的程序会超级难懂和维护.
  • 如果有需要,切记使用finally来释放资源
  • 如果有需要,不要忘记在处理完异常之后做清理工作或者回滚 *** 作.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/722542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存