新手学Python 第十篇 异常

异常是程序出现错误而在正常控制流以外采取的行动。


异常可以通过try语句来检测。任何在try语句块里的代码都会被监测,检查
有无异常发生。


try语句有两种主要形式:try-except 和 try-finally
两者的区别:
1、两个语句互斥,只能使用其中一种;
2、一个try语句可以对应一个或多个execpt子句,但只能对应一个finally子句
3、使用try-except可以检测盒处理异常,而try-finally只允许检测异常并进
   行必要的清理工作,没有异常处理措施。

try-except:
提示:try-except后可以加一个可选else子句,用于不发生异常时执行
>>> try:
     f = open('blah','r')
    except IOError,e:
        print 'could not open file:',e


在程序运行时,解释器执行完try块后如果没有发生异常,则执行流就会跳过
except语句继续执行。如果异常发生,try块中的剩余代码被跳过。


除程序错误触发异常外,程序员还可以使用raise语句 引发异常。使用raise

时还得指明错误/异常的名称和伴随异常触发的异常对象,引发的异常应该

是一个Error或Exception类的直接或间接导出类。

例如:

class ShortInputException(Exception):
    def __init__(self,length,atleast):
        Exception.__init__(self)
        self.length = length
        self.atleast = atleast
try:
    s = raw_input('Enter something -->')
    if len(s) <3:
        raise ShortInputException(len(s),3)
except EOFError:
    print '\nWhy did you do an EOF on me?'
except ShortInputException,x:
    print 'ShortInputException: The input was of length %d,\
was expecting at least %d'%(x.length,x.atleast)
else:
    print 'No exception was raised.'

try-finally:

可以用来保证无论异常是否发生,finally块的程序都能够执行

import time
try:
    f = file('D:\poem.txt')
    while True:
        line = f.readline()
        if len(line) == 0:
            break
        time.sleep(2)
        print line,
finally:
    f.close()
    print 'Cleaning up...closed the file'
             


             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值