Python异常和异常处理

Python中的异常处理与Java中的做法思路类似,个别细节的地方需要注意下即可,理解起来没有太大问题

try-except块及finally

异常常用小技巧:
(1)在类型转换的地方检查类型转换是否正确

while True:
    try:
        valueStr = raw_input("Input integer:")
        valueInt = int(valueStr) #convert to int(possible exception)
        break
    except ValueError:
        print "Bad input"

(2)检查文件打开是否成功

while True:
    try:
        fileName = raw_input("Open file:")
        dataFile = open(fileName)
        break
    except IOError:
        print "Bad file name"

对于finally块,与Java一样,即无论如何都会被执行,需要注意的是,当出现类似break关键字,会先执行完finally块中的语句再进行break操作,例如如下的一个小demo:

def processFile(dataFile):
    count = 1
    for line in dataFile:
        print "Line " + str(count) + ":" +line.strip()
        count += 1

while True:
    fileName = raw_input("Please input a file to open:")
    try:
        dataFile = open(fileName)
    except IOError:
        print "Bad file name,try again"
    else:
        print "processing file",fileName
        processFile(dataFile)
        break  #exit "while" loop(but do "finally" block first)
    finally:
        try:
            dataFile.close()
        except NameError:
            print "Going around again"

print "Line after the try-except group"

深入异常——raise与自定义异常

(1)raise 任何时候都能引发异常,而不必等Python来引发,只需要使用关键字raise加上异常的名称

(2)自定义异常:
Python中的异常是类,要创建异常,就必须创建其中一个异常类的子类。通过继承,将异常类的所有基本特点保留下来。例如下面例子,user参数需要是字符串,并且仅由字母或数字组成,否则将会引发用户自定义的异常:

class NameException(Exception):
    print "Name is error"
if not isinstance(user,str) or not user.isalnum():
    raise NameException
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值