语句 - try: except: - 尝试获得

try except 简介
Python 中的 try...except
结构用于异常处理。try
块中的代码尝试执行,如果出现异常,则跳转到 except
块执行异常处理代码。这种结构允许程序在遇到错误时不会立即崩溃,而是可以捕获错误并做出相应处理,如记录日志、提供用户反馈或尝试替代方案。try...except
增强了程序的健壮性,使得开发者可以控制错误处理流程,提高用户体验。
格式
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
打印所有异常到屏幕
import traceback
try:
xxxx1
except:
traceback.print_exc() #打印所有异常到屏幕
常规错误的基类 Exception
try:
xxxx1
except Exception as e:
print(e)
异常名称 |
描述 |
BaseException |
所有异常的基类 |
SystemExit |
解释器请求退出 |
KeyboardInterrupt |
用户中断执行(通常是输入^C) |
Exception |
常规错误的基类 |
StopIteration |
迭代器没有更多的值 |
GeneratorExit |
生成器(generator)发生异常来通知退出 |
StandardError |
所有的内建标准异常的基类 |
ArithmeticError |
所有数值计算错误的基类 |
FloatingPointError |
浮点计算错误 |
OverflowError |
数值运算超出最大限制 |
ZeroDivisionError |
除(或取模)零 (所有数据类型) |
AssertionError |
断言语句失败 |
AttributeError |
对象没有这个属性 |
EOFError |
没有内建输入,到达EOF 标记 |
EnvironmentError |
操作系统错误的基类 |
IOError |
输入/输出操作失败 |
OSError |
操作系统错误 |
WindowsError |
系统调用失败 |
ImportError |
导入模块/对象失败 |
LookupError |
无效数据查询的基类 |
IndexError |
序列中没有此索引(index) |
KeyError |
映射中没有这个键 |
MemoryError |
内存溢出错误(对于Python 解释器不是致命的) |
NameError |
未声明/初始化对象 (没有属性) |
UnboundLocalError |
访问未初始化的本地变量 |
ReferenceError |
弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
RuntimeError |
一般的运行时错误 |
NotImplementedError |
尚未实现的方法 |
SyntaxError |
Python 语法错误 |
IndentationError |
缩进错误 |
TabError |
Tab 和空格混用 |
SystemError |
一般的解释器系统错误 |
TypeError |
对类型无效的操作 |
ValueError |
传入无效的参数 |
UnicodeError |
Unicode 相关的错误 |
UnicodeDecodeError |
Unicode 解码时的错误 |
UnicodeEncodeError |
Unicode 编码时错误 |
UnicodeTranslateError |
Unicode 转换时错误 |
Warning |
警告的基类 |
DeprecationWarning |
关于被弃用的特征的警告 |
FutureWarning |
关于构造将来语义会有改变的警告 |
OverflowWarning |
旧的关于自动提升为长整型(long)的警告 |
PendingDeprecationWarning |
关于特性将会被废弃的警告 |
RuntimeWarning |
可疑的运行时行为(runtime behavior)的警告 |
SyntaxWarning |
可疑的语法的警告 |
UserWarning |
用户代码生成的警告 |
BaseException 所有异常的基类
+-- SystemExit 解释器请求退出
+-- KeyboardInterrupt 用户中断执行(通常是输入^C)
+-- GeneratorExit 生成器(generator)发生异常来通知退出
+-- Exception 常规错误的基类
+-- StopIteration 迭代器没有更多值
+-- StopAsyncIteration 必须通过异步迭代器对象的__anext__()方法引发以停止迭代
+-- ArithmeticError 所有数值计算错误的基类
| +-- FloatingPointError 浮点计算错误
| +-- OverflowError 数值运算超出最大限制
| +-- ZeroDivisionError 除(或取模)零 (所有数据类型
+-- AssertionError 断言语句失败
+-- AttributeError 对象没有这个属性
+-- BufferError 与缓冲区相关的操作时引发
+-- EOFError 没有内建输入,到达EOF 标记
+-- ImportError 导入失败
| +-- ModuleNotFoundError 找不到模块
+-- LookupError 无效数据查询的基类
| +-- IndexError 序列中没有此索引(index)
| +-- KeyError 映射中没有这个键
+-- MemoryError 内存溢出错误
+-- NameError 未声明、初始化对象
| +-- UnboundLocalError 访问未初始化的本地变量
+-- OSError 操作系统错误,
| +-- BlockingIOError 操作将阻塞对象设置为非阻塞操作
| +-- ChildProcessError 子进程上的操作失败
| +-- ConnectionError 与连接相关的异常的基类
| | +-- BrokenPipeError 在已关闭写入的套接字上写入
| | +-- ConnectionAbortedError 连接尝试被对等方中止
| | +-- ConnectionRefusedError 连接尝试被对等方拒绝
| | +-- ConnectionResetError 连接由对等方重置
| +-- FileExistsError 创建已存在的文件或目录
| +-- FileNotFoundError 请求不存在的文件或目录
| +-- InterruptedError 系统调用被输入信号中断
| +-- IsADirectoryError 在目录上请求文件操作
| +-- NotADirectoryError 在不是目录的事物上请求目录操作
| +-- PermissionError 在没有访问权限的情况下运行操作
| +-- ProcessLookupError 进程不存在
| +-- TimeoutError 系统函数在系统级别超时
+-- ReferenceError 弱引用试图访问已经垃圾回收了的对象
+-- RuntimeError 一般的运行时错误
| +-- NotImplementedError 尚未实现的方法
| +-- RecursionError 解释器检测到超出最大递归深度
+-- SyntaxError Python 语法错误
| +-- IndentationError 缩进错误
| | +-- TabError Tab 和空格混用
+-- SystemError 一般的解释器系统错误
+-- TypeError 对类型无效的操作
+-- ValueError 传入无效的参数
| +-- UnicodeError Unicode 相关的错误
| | +-- UnicodeDecodeError Unicode 解码时的错误
| | +-- UnicodeEncodeError Unicode 编码时错误
| | +-- UnicodeTranslateError Unicode 转换时错误
+-- Warning 警告的基类
| +-- DeprecationWarning 关于被弃用的特征的警告
| +-- PendingDeprecationWarning 关于构造将来语义会有改变的警告
| +-- RuntimeWarning 可疑的运行行为的警告
| +-- SyntaxWarning 可疑的语法的警告
| +-- UserWarning 用户代码生成的警告
| +-- FutureWarning 有关已弃用功能的警告的基类
| +-- ImportWarning 模块导入时可能出错的警告的基类
| +-- UnicodeWarning 与Unicode相关的警告的基类
| +-- BytesWarning bytes和bytearray相关的警告的基类
| +-- ResourceWarning 与资源使用相关的警告的基类
|
|
|
|
|
|
BaseException |
所有异常的基类 |
|
|
|
|
|
SystemExit |
解释器请求退出 |
|
|
|
|
KeyboardInterrupt |
用户中断执行(通常是输入^C) |
|
|
|
|
GeneratorExit |
生成器(generator)发生异常来通知退出 |
|
|
|
|
Exception |
常规错误的基类 |
|
|
|
|
|
StopIteration |
迭代器没有更多值 |
|
|
|
|
StopAsyncIteration |
必须通过异步迭代器对象的anext()方法引发以停止迭代 |
|
|
|
|
ArithmeticError |
所有数值计算错误的基类 |
|
|
|
|
|
FloatingPointError |
浮点计算错误 |
|
|
|
|
OverflowError |
数值运算超出最大限制 |
|
|
|
|
ZeroDivisionError |
除(或取模)零(所有数据类型 |
|
|
|
AssertionError |
断言语句失败 |
|
|
|
|
AttributeError |
对象没有这个属性 |
|
|
|
|
BufferError |
与缓冲区相关的操作时引发 |
|
|
|
|
EOFError |
没有内建输入,到达EOF标记 |
|
|
|
|
ImportError |
导入失败 |
|
|
|
|
|
ModuleNotFoundError |
找不到模块 |
|
|
|
LookupError |
无效数据查询的基类 |
|
|
|
|
|
IndexError |
序列中没有此索引(index) |
|
|
|
|
KeyError |
映射中没有这个键 |
|
|
|
MemoryError |
内存溢出错误 |
|
|
|
|
NameError |
未声明、初始化对象 |
|
|
|
|
|
UnboundLocalError |
访问未初始化的本地变量 |
|
|
|
OSError |
操作系统错误, |
|
|
|
|
|
BlockingIOError |
操作将阻塞对象设置为非阻塞操作 |
|
|
|
|
ChildProcessError |
子进程上的操作失败 |
|
|
|
|
ConnectionError |
与连接相关的异常的基类 |
|
|
|
|
|
BrokenPipeError |
在已关闭写入的套接字上写入 |
|
|
|
|
ConnectionAbortedError |
连接尝试被对等方中止 |
|
|
|
|
ConnectionRefusedError |
连接尝试被对等方拒绝 |
|
|
|
|
ConnectionResetError |
连接由对等方重置 |
|
|
|
FileExistsError |
创建已存在的文件或目录 |
|
|
|
|
FileNotFoundError |
请求不存在的文件或目录 |
|
|
|
|
InterruptedError |
系统调用被输入信号中断 |
|
|
|
|
IsADirectoryError |
在目录上请求文件操作 |
|
|
|
|
NotADirectoryError |
在不是目录的事物上请求目录操作 |
|
|
|
|
PermissionError |
在没有访问权限的情况下运行操作 |
|
|
|
|
ProcessLookupError |
进程不存在 |
|
|
|
|
TimeoutError |
系统函数在系统级别超时 |
|
|
|
ReferenceError |
弱引用试图访问已经垃圾回收了的对象 |
|
|
|
|
RuntimeError |
一般的运行时错误 |
|
|
|
|
|
NotImplementedError |
尚未实现的方法 |
|
|
|
|
RecursionError |
解释器检测到超出最大递归深度 |
|
|
|
SyntaxError |
Python |
语法错误 |
|
|
|
|
|
IndentationError |
缩进错误 |
|
|
|
|
|
TabError |
Tab |
和空格混用 |
|
|
SystemError |
一般的解释器系统错误 |
|
|
|
|
TypeError |
对类型无效的操作 |
|
|
|
|
ValueError |
传入无效的参数 |
|
|
|
|
|
UnicodeError |
Unicode相关的错误 |
|
|
|
|
|
UnicodeDecodeError |
Unicode解码时的错误 |
|
|
|
|
UnicodeEncodeError |
Unicode编码时错误 |
|
|
|
|
UnicodeTranslateError |
Unicode转换时错误 |
|
|
Warning |
警告的基类 |
|
|
|
|
|
DeprecationWarning |
关于被弃用的特征的警告 |
|
|
|
|
PendingDeprecationWarning |
关于构造将来语义会有改变的警告 |
|
|
|
|
RuntimeWarning |
可疑的运行行为的警告 |
|
|
|
|
SyntaxWarning |
可疑的语法的警告 |
|
|
|
|
UserWarning |
用户代码生成的警告 |
|
|
|
|
FutureWarning |
有关已弃用功能的警告的基类 |
|
|
|
|
ImportWarning |
模块导入时可能出错的警告的基类 |
|
|
|
|
UnicodeWarning |
与Unicode相关的警告的基类 |
|
|
|
|
BytesWarning |
bytes和bytearray相关的警告的基类 |
|
|
|
|
ResourceWarning |
与资源使用相关的警告的基类 |
|