2020-06-04 Python异常处理

   日期:2024-01-17     浏览:41    评论:0    

抛出异常

assert语句

当assert语句后面的内容是假时,终止程序报出异常(AssertionError)。

1 ls=[1,2]
2 assert len(ls)>1
3 ls.pop()
4 assert len(ls)>1

raise语句

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

Exception是异常类型,可以使标准异常中的任何一种,也可以是自己设定的,args是自己提供的异常参数,最后一个参数为跟踪异常对象,一般很少用。

raise Exception("wrong")

异常可以有参数,在抛出时会说明自己写入的错误原因。

编写Exception的常用模板:

class CustomError(Exception):
    def __init__(self,ErrorInfo):
        super().__init__(self)
        self.errorinfo=ErrorInfo
    def __str__(self):
        return self.errorinfo

这样就可以使用自己编写的异常去完成这个抛出异常的操作。

异常种类

IndexError(索引超出),AttributeError(尝试访问未知的对象属性),KeyError(字典中查找一个不存在的关键字),NameError(尝试访问一个不存在的变量)

OSError(操作系统产生异常,例:打开不存在的文件),SyntaxError(Python语法错误),ZeroDivisionError(除数为零)

捕获异常

try-except语句

try:
    检测范围 
except Exceptiom[as reason]:
    出现异常后的处理代码


try:
    f=open('1.txt')
    print(f.read())
    f.close()
except OSError:
    print('wrong')

针对不同的异常可以设置多个except,同时如果想了解具体异常情况,可以进行reason的输出。

except OSError as reason:
    print("wrong:"+str(reason))

对多个异常也可以进行统一处理,捕获所有异常

````#捕获多个异常
except OSError as reason:
    print(''+str(reason))
except TypeError as reason:
    print(''+str(reason))
````#捕获所有异常
except:
    print("error")
````

try-finally语句

finally是用来收拾残局的,比如在打开文件后,因为其他的语句出现错误,而导致文件不能正常关闭,那么可能导致文件内容丢失,所以我们需要finally收拾残局。

try:
    f=open("1.txt")
    print("success")
    sum=1+'1'
    f.close()
except:
    print("error")
finally:
    f.close()

else可以跟在while,try,for后面,但是如果break或者出现异常,else将不会执行。

使用with语句打开文件不会出现忘记关闭的情况。

try:
    with open("1.txt"):
        for each_line in f:
            print(each_line)
except OSError as reason:
    print("error")

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服