在python中抛出异常,尽量将异常信息抛出,切忌使用pass这种什么都不做的操作。
使用pass后,由于什么都不做,我们很难得知程序到底出了什么异常,不利于维护程序。
<span style="font-size:14px;">class Score(object):
def __init__(self):
self.name='小明'
self.english=78
self.math=89
def sum(self):
return self.math+self.english
def println(self):
try:
print '姓名:'+self.name+'得分:'+self.sum()
except:
pass
if __name__=='__main__':
Score().println()</span>
上面程序运行结果如下:
程序没有任何输出,我们也无法定位出错的原因。
我们对上面程序修改如下:
<span style="font-size:14px;">class Score(object):
def __init__(self):
self.name='小明'
self.english=78
self.math=89
def sum(self):
return self.math+self.english
def println(self):
try:
print '姓名:'+self.name+'得分:'+self.sum()
except Exception,e:
print e
if __name__=='__main__':
Score().println()</span>
程序运行如下:
这样我们就能看的异常信息了,然后根据异常信息,查找问题根源。
<span style="font-size:14px;">class Score(object):
def __init__(self):
self.name='小明'
self.english=78
self.math=89
def sum(self):
return self.math+self.english
def println(self):
try:
print '姓名:%s,得分:%d' %(self.name,self.sum())
except Exception,e:
print e
if __name__=='__main__':
Score().println()</span>