gll89的个人博客分享 http://blog.sciencenet.cn/u/gll89

博文

[转载][Python] 异常try-except-else,try-finally,raise

已有 2061 次阅读 2019-5-6 19:43 |个人分类:Python|系统分类:科研笔记|文章来源:转载

一、try-except-else

使用except而不带任何异常类型

你可以不带任何异常类型使用except,如下实例:

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

以上方式try-except语句捕获所有发生的异常。但这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。


使用except而带多种异常类型

你也可以使用相同的except语句来处理多个异常信息,如下所示:

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


二、try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码。

try:
<语句>
finally:
<语句>    #退出try时总会执行raise

实例

#!/usr/bin/python
# -*- coding: UTF-8 -*-
try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
finally:
    print "Error: 没有找到文件或读取文件失败"

如果打开的文件没有可写权限,输出如下所示:

$ python test.py 
Error: 没有找到文件或读取文件失败

二、raise语句

raise引发一个异常,如下例子:

例子:如果输入的数据不是整数,则引发一个ValueError
inputValue=input("please input a int data :")
if type(inputValue)!=type(1):    
    raise ValueError
else:
    print inputValue
假设输入1.2,运行结果为:
please input a int data :1.2
Traceback (most recent call last):
File "C:/Users/lirong/PycharmProjects/untitled/openfile.py", line 3, in <module>
raise ValueError
ValueError
如果输入1,运行结果为:
please input a int data :1
1

From: https://www.runoob.com/python/python-exceptions.html    

https://www.cnblogs.com/Lival/p/6203111.html



https://blog.sciencenet.cn/blog-1969089-1177447.html

上一篇:[转载]Anaconda installation and path configuration on windows
下一篇:DICOM & its operation with python
收藏 IP: 60.191.2.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 00:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部