[Python]错误处理

finally语句是不管是否发生错误都会被执行的,可以用于在错误发生时保存文件。

try:
    print("try....")
    r = 10 / 0
    print("result", r)
except ZeroDivisionError as e:
    print("except:", e)
finally:
    print("finally...")
print("END....")

当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
raise的作用是,如果我们知道某一段程序在不规范使用的时候就会引发错误那么我们可以提前将错误处理函数写好,他运行到这个地方如果数据类型什么的不规范那么就会产生错误,同时我们可以吧响应的错误处理提示写在raise语句里面,方便出错时其他人进行维护。

# 自动的raiseError
try:
     s = None
     if s is None:
         print "s 是空对象"
         raise NameError     #如果引发NameError异常,后面的代码将不能执行
     print len(s)  #这句不会执行,但是后面的except还是会走到
except TypeError:
     print "空对象没有长度"
s = None
if s is None:
    raise NameError 
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里
#raise Exception("a应该是一个字符串")

Exception是所有常规错误的基类,不知道会发生什么错误的时候就可以使用这个

try:
     a=1
except Exception as e:
     print('he')

在进行错误处理的时候如果输入不符合我们的要求,我们可以手动的raise错误

raise Exception(" trim argument is need!")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ruby:提问:简书在现在开始推广【课程贩卖】这样的东西来变现。把一些有才艺的写手推出来,用文章打赏的方式贩卖写手...
    Cxy_ego阅读 2,910评论 0 0
  • 是因为你,我不想再做梦,因为梦里有你,但梦一醒,只剩我; 是因为你,我不想再面对自己的心,我对所有人说,我不留恋,...
    夏科科阅读 1,235评论 0 0
  • 只有深夜的泪流 不足以谈人生 因为只品尝了生活的苦涩 历经险阻后的 山泉,流岚,晚霞,星辰 才是人生愿景 失落,痛...
    凌晨有点蓝阅读 4,212评论 2 3
  • 从小就听说上有天堂下有苏杭,青春那时常幻想有朝一日定要和心爱的人来苏杭看一看,在这人间仙境留下我们爱的证明。却没想...
    独角戏_0f0c阅读 3,097评论 0 0