Python 异常处理

匿名 (未验证) 提交于 2019-12-02 22:11:45

异常概念

Python在执行代码之前,会进行语法检查,如果语法出错了,会抛出语法错误(SyntaxError)。

Python程序运行期间检测到的错误被称为异常。

内置异常:

BaseException:所有异常的基类

错误类异常(发生之后,如果不捕获,将会导致程序终止):

  SystemExit:解释器请求退出

  KeyboardInterrupt:用户中断执行(通常是输入^C)

  Exception:常规错误的基类

  StopIteration:迭代器没有更多的值

  ZeroDivisionError:除(或取模)零 (所有数据类型)

  AssertionError:断言语句失败

  AttributeError:对象没有这个属性

  NotImplementedError:尚未实现的方法

  SyntaxError:Python 语法错误

警告类异常(打印出警告信息,使用warnings模块调用,而不是使用raise抛出,不会中断程序的正常执行):

Warning:警告的基类

DeprecationWarning:关于被弃用的特征的警告 

import warnings

  warnings.warn("新的版本将会弃用", DeprecationWarning)

UserWarning:用户代码生成的警告

  import warnings

  warnings.warn("用户的忠告", UserWarning)

异常相关语句

              assert(断言)

assert

# 示例:

              raise语句(抛出异常)

raise 异常对象实例

# 示例:

raise Exception(‘程序员抛出的异常‘)

try语句(捕获异常)

  try-except

  try-except-except(任意多个except)

  try-except-else

  try-except-finally

  try-except-else-finally

捕获异常

  try语句

抛出异常

  raise语句

自定义异常

  继承自Exception类

  自定义的异常类可以为空

class MyExcpet(Exception):

也可以重写父类的__init__和__str__方法

class MyExcpet(Exception):

class MyExcpet(Exception):     """我自己的自定义异常"""     def __init__(self, value):         super(MyExcpet, self).__init__()         self.value = value # 异常提示信息      def __str__(self):         return __class__.__name__ +   + repr(self.value)  try:     raise MyExcpet(我的异常发生了) except MyExcpet:     print(自己的异常,自己捕获) except Exception as ex:     print(捕获很多类型的异常) except:     print(所有未知的异常)

原文:https://www.cnblogs.com/sxqfuture/p/9378967.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!