Python中程序异常都能被处理吗?

 我来答
zhangsonglin_c
高粉答主

2021-04-11 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:6837万
展开全部

“异常”是Python对象,表示一个错误。

如果不想出现异常后程序自动停止运行,编程的人,就要主动捕捉异常,并自己作出相应处理。

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

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

下面是try/except的示例,说明了怎样处理各种异常:

try:

<语句>  #运行别的代码

except <名字>:

<语句> #如果在try部份引发了'name'异常

except <名字>,<数据>:

<语句> #如果引发了'name'异常,获得附加的数据

else:

<语句> #如果没有异常发生

Python的各种标准异常是预先定义好的。基本上包括了常见的异常情况,主要有以下内容。

异常名称   描述

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    用户代码生成的警告    

Python系统处理异常就是提示一下,停止运行。不想停止,只有自己处理。

可以不带类型,所有异常执行同一组语句:

try:
正常的操作
except:
发生异常,执行这块代码
else:
如果没有异常执行这块代码


也可以多个异常共用一段代码:

ry:
正常的操作
except(Exception1[, Exception2[,...ExceptionN]]]):
发生以上多个异常中的一个,执行这块代码
else:
如果没有异常执行这块代码

还有一种格式,可以有finally部分:

try:
fh = open("testfile", "w")
try:
fh.write("这是一个测试文件,用于测试异常!!")
finally:
print "关闭文件"
fh.close()except IOError:
print "Error: 没有找到文件或读取文件失败"

当在try块中抛出一个异常,立即执行finally块代码。

finally块中的所有语句执行后,异常被再次触发,并执行except块代码。

参数的内容不同于异常。

除了标准异常,我们也可以自己定义异常,并进行处理,这时用到raise语句:

raise [Exception [, args [, traceback]]]

语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。

最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

相应的异常处理程序示例如下:

try:
正常语句,内含raise语句

except Exception,err:
触发自定义异常   

else:
其余代码

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式