我是靠谱客的博主 失眠钢笔,最近开发中收集的这篇文章主要介绍【Python】Python 异常处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 什么是异常?
    • Python 异常处理
    • 如何获取异常的相关信息?
    • try … excepet …
      • 举个栗子????
    • try … excepet … else …
      • 举个栗子????
    • try … finally …
      • 举个栗子????
    • try … excepet … finally …
      • 举个栗子????
    • try … excepet … else … finally …
      • 举个栗子????
    • 附录:Python 标准异常

什么是异常?

异常即一个事件,该事件会在程序执行过程中发生,中断程序运行;一般情况下,当 Python 无法正常处理程序时,就会抛出一个异常。

当运行可能会出错的代码时,需要适当地添加异常处理程序,以便于阻止潜在的错误发生。

????注意:异常也是 Python 对象,表示一个错误事件。

Python 异常处理

捕获异常可以使用try/except语句。

捕获异常原理:检测 try 代码块中的错误,让 except 代码块捕获异常信息并处理。

????注意try 代码块有且仅有一个,但 except 代码块可以有多个且每个 except 代码块可同时处理多种异常

如何获取异常的相关信息?

在 Python 中,每个异常也是一个对象,可使用如何下方法获取当前异常的相关信息:

  • e.args:返回异常信息的错误编号和描述字符串
  • str(e):返回异常信息,但不包括异常信息的类型
  • repr(e):返回较全的异常信息,包括异常信息的类型
>>> try:
...     a = 1/0
... except Exception as e:
...     print(e.args)
...     print(str(e))
...     print(repr(e))
('division by zero',)
division by zero
ZeroDivisionError('division by zero')

try … excepet …

try:
    可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
    处理异常的代码块
except  [Exception]:
    处理其它异常的代码块

举个栗子????

>>> try:
...     a = 1/0
... except ZeroDivisionError as e:
...     print("被除数不能为 0 ")
... except Exception as e:
...     print("其他异常")
被除数不能为 0 

try … excepet … else …

try:
    可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
    处理异常的代码块
except  [Exception]:
    处理其它异常的代码块
else:
    未发生异常的代码块

????注意:当 try 代码块有 return 代码时,不会执行 else 代码块。

举个栗子????

>>> try:
...     a = 1/1
... except ZeroDivisionError as e:
...     print("被除数不能为 0 ")
... except Exception as e:
...     print("其他异常")
... else:
... 	print("没有异常")
没有异常

try … finally …

try:
    可能产生异常的代码块
finally:
  	最后一定会执行的代码块

????注意:不管 try 代码块是否有 return 代码时,都会执行 finally 代码块。

举个栗子????

>>> try:
...     a = 1/1
... finally:
...     print("finally")
finally

try … excepet … finally …

try:
    可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
    处理异常的代码块
except  [Exception]:
    处理其它异常的代码块
finally:
  	最后一定会执行的代码块

举个栗子????

>>> try:
...     a = 1/1
... except ZeroDivisionError as e:
...     print("被除数不能为 0 ")
... except Exception as e:
...     print("其他异常")
... finally:
...     print("finally")
finally

try … excepet … else … finally …

try:
    可能产生异常的代码块
except [ (Error1, Error2, ... ) [as e] ]:
    处理异常的代码块
except  [Exception]:
    处理其它异常的代码块
else:
    未发生异常的代码块
finally:
  	最后一定会执行的代码块

举个栗子????

>>> try:
...     a = 1/1
... except ZeroDivisionError as e:
...     print("被除数不能为 0 ")
... except Exception as e:
...     print("其他异常")
... else:
... 	print("没有异常")
... finally:
...     print("finally")
没有异常
finally

附录:Python 标准异常

异常名称异常说明适用版本
BaseException所有异常的基类ALL
Exception所有常规异常的基类ALL
StopIteration迭代器没有更多的值ALL
GeneratorExit生成器异常退出(Generator)ALL
SystemExitPython 解释器异常退出ALL
StandardError所有内建标准异常的基类Python 2.x
ArithmeticError所有数值计算异常的基类ALL
ZeroDivisionError(整)除零错误ALL
FloatingPointError浮点数计算异常ALL
OverflowError数值超出最大限制ALL
AssertionError断言异常ALL
AttributeError对象没有该属性ALL
EOFError没有内建输入,到达EOF 标记ALL
EnvironmentError所有操作系统异常的基类ALL
IOError输入/输出异常ALL
OSError操作系统异常ALL
WindowsError系统调用异常Python 2.x
ImportError导入模块/对象异常ALL
KeyboardInterrupt用户中断执行(Ctrl+CALL
LookupError所有无效查询异常的基类ALL
IndexError序列中索引异常(Index)ALL
KeyError映射中键异常(Key)ALL
MemoryError内存溢出异常ALL
NameError未声明/初始化对象(没有属性)ALL
UnboundLocalError访问未初始化的本地变量ALL
ReferenceError试图访问已垃圾回收的对象——弱引用(Weak reference)ALL
RuntimeError一般运行的异常ALL
NotImplementedError尚未实现的方法ALL
SyntaxError语法异常ALL
IndentationError缩进异常ALL
TabErrortab 和空格混用异常ALL
SystemError解释器系统异常ALL
SystemExit解释器请求退出ALL
TypeError类型异常(对类型无效操作)ALL
ValueError值异常(传入无效参数)ALL
UnicodeError所有 Unicode 异常的基类ALL
UnicodeDecodeErrorUnicode 解码异常ALL
UnicodeEncodeErrorUnicode 编码异常ALL
UnicodeTranslateErrorUnicode 转换异常ALL
Warning所有警告异常的基类ALL
DeprecationWarning被弃用特征的警告ALL
FutureWarning构造将来语义改变的警告ALL
OverflowWarning自动转为长整型的警告Python 2.x
PendingDeprecationWarning关于特性将会被废弃的警告ALL
RuntimeWarning可疑的运行警告ALL
SyntaxWarning可疑的语法警告ALL
UserWarning用户代码生成的警告ALL

最后

以上就是失眠钢笔为你收集整理的【Python】Python 异常处理的全部内容,希望文章能够帮你解决【Python】Python 异常处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部