美文网首页
python异常小结

python异常小结

作者: nowherespyfly | 来源:发表于2019-02-09 20:08 被阅读0次

异常,exception,其实就是python的一个对象。每个异常都是某个异常类(如ZeroZeroDivisionError)的一个实例。

引发异常

异常可以是自动触发(违反某些规则,如除零),也可以是手动触发。使用raise语句,就可以引发指定的异常。

>>> raise Exception('This is an exception")
Traceback (most recent call last):
        File "<stdin>", line 1, in ?
        Exception: This is an exception

raise后面接Exception类(或其他异常类),括号里是异常信息。每次执行raise语句,都会自动创建一个异常类实例。
以下为几种python内置的异常类


常用异常类

异常捕获和处理

可以使用try/except语句对异常进行捕获然后进行相关处理。else语句处理没有发生异常的情况。

>>>try:
       print(x / y)
   except ZeroDivisionError:
       print("y can't be zero')
   else
       print("OK")

异常从函数向外传播到调用函数的地方。如果在这里也没有被捕获,异常将向程序的最顶层传播.
同时捕获多个异常可以用多个except语句,也可以用一个except,括号里写入若干种异常。如果想要捕获所有异常,直接用except语句,后面不接任何异常。
有时候,可使用条件语句来达成异常处理实现的目标,但这样编写出来的代码可能不那么自然,可读性也没那么高。另一方面,有些任务使用if/else完成时看似很自然,但实际上使用try/except来完成要好得多。因此,应该尽量养成写try/except的习惯。

自定义异常

除了第一节列出的几种python内置的异常类,也可以自定义异常类,用于专门处理某一类异常。

>>>class MyException(Exception):
         pass

警告

如果只是想发出警告,指出出现了一些情况,不想中止程序,可以使用warning。

>>> from warnings import warn
>>> warn('Maybe you should stop here')
__main__:1: UserWarning: Maybe you should stop here

还可使用模块warnings中的函数filterwarnings来抑制你发出的警告(或特定类型的警告),并指定要采取的措施,如"error"或"ignore"。

相关文章

  • python异常小结

    异常,exception,其实就是python的一个对象。每个异常都是某个异常类(如ZeroZeroDivisio...

  • 24:python中的异常

    异常: 首先看看python的异常继承树 python的异常分为两种. 1、内建异常:就是python自己定义的异...

  • python itertools

    PYTHON-进阶-ITERTOOLS模块小结

  • Python异常处理

    参考 Python菜鸟教程错误与异常 Python 异常处理 错误和异常 Python中(至少)有两种错误:语法错...

  • 学习资料

    简明python教程Python2字符编码问题小结stackoverflow about python

  • Python学习(八)

    异常处理 Python中的异常类型总结: Python内置异常类的层次结构: 异常检测 try-except语句 ...

  • (三)python错误与异常&面向对象编程

    python错误与异常 语法错误与定位 异常捕获、异常处理 try:xxxexcept: 自定义异常 python...

  • Python错误处理机制

    @(python程序员)[Python] Python Cookbook 捕获所有的异常 处理异常的时候最好还会尽...

  • JAVA 异常控制

    文章 Spring RestFul API统一异常处理SpringBoot RESTful 应用中的异常处理小结S...

  • Python异常处理

    Python中文件的操作 Python异常的处理 异常的引发 try⋯finally的使用

网友评论

      本文标题:python异常小结

      本文链接:https://www.haomeiwen.com/subject/atjzsqtx.html