python的异常处理

python的异常处理,第1张

可能触发异常产生的代码会放到try语句块里,而处理异常的代码会在except语句块里实现。例如:

我们可以使用三种方法来处理多个异常。

第一种方法需要把所有可能发生的异常放到一个元组里。像这样:

另外一种方式是对每个单独的异常在单独的except语句块中处理。我们想要多少个except语句块都可以:

最后一种方式会捕获 所有 异常:

注意,捕获所有异常可能会造成意外的结果,比如,通常我们使用CTRL+C来终止程序,但如果程序中捕获了所有异常,CTRL+C就无法终止程序了。

包裹到finally从句中的代码不管异常是否触发都将会被执行。这可以被用来在脚本执行之后做清理工作:

如果想在没有触发异常的时候执行一些代码,可以使用else从句。

有人也许问了:如果你只是想让一些代码在没有触发异常的情况下执行,为啥你不直接把代码放在try里面呢?回答是,那样的话这段代码中的任意异常都还是会被try捕获,而你并不一定想要那样。

else从句只会在没有异常的情况下执行,而且它会在finally语句之前执行。

错误分为语法错误和逻辑错误

1、语法错误

程序执行过程中,python解释器会检测你的程序是否存在语法错误,如果程序出错python解释器会指出出错的一行,并且在最先找到的,错误的文职标记了一个小小的箭头。

2、逻辑错误

在生活中0是不能作为被除数的,程序写的语法可能没问题,但是逻辑上不一定没有问题,这就是一种逻辑错误。

异常处理方法:

Python内置的try...except...finally用来处理错误十分方便,出错时,会分析错误信息并定位错误发生的代码位置才是最关键的。

程序也可以主动抛出错误,让调用者来处理相应的错误,但是,应该在文档中写清楚可能会抛出哪些错误,以及错误产生的原因。

扩展资料:

实例:下面是简单的例子,它打开一个文件,在该文件中的内容写入内容,但文件没有写入权限,发生了异常:

#!/usr/bin/python#-*-coding:UTF-8-*-try:

fh=open("testfile","w")

fh.write("这是一个测试文件,用于测试异常!!")exceptIOError:

print"Error:没有找到文件或读取文件失败"else:

print"内容写入文件成功"

fh.close()

在执行代码前为了测试方便,我们可以先去掉testfile文件的写权限,命令如下:

chmod-wtestfile

再执行以上代码:

$pythontest.py

Error:没有找到文件或读取文件失败


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11297359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存