VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python异常大总结(2)

输入的数字不能为0!           #怎么样?这次已经友好的多了

假如,我们在调试的时候引发异常会好些,如果在与用户的进行交互的过程中又是不希望用户看到异常信息的。那如何开启/关闭 “屏蔽”机制?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class MuffledCalulator:
muffled= False   #这里默认关闭屏蔽
def calc(self,expr):
try:
return eval(expr)
except ZeroDivisionError:
if self.muffled:
print 'Divsion by zero is illagal'
else:
raise
#运行程序:
>>> calculator= MuffledCalulator()
>>> calculator.calc('10/2')
5
>>> calculator.clac('10/0')
Traceback (most recent call last):
File "<pyshell#30>", line1,in <module>
calculator.clac('10/0')
AttributeError: MuffledCalulator instance has no attribute'clac'   #异常信息被输出了
>>> calculator.muffled= True   #现在打开屏蔽
>>> calculator.calc('10/0')
Divsion by zerois illagal

 

多个except 子句

如果运行上面的(输入两个数,求除法)程序,输入面的内容,就会产生另外一个异常:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
try:
x= input('Enter the first number: ')
y= input('Enter the second number: ')
print x/y
except ZeroDivisionError:
  print "输入的数字不能为0!"
  
#运行输入:
>>>
Enter the first number:10
Enter the second number:'hello.word'  #输入非数字
Traceback (most recent call last):
File "I:\Python27\yichang", line4,in <module>
print x/y
TypeError: unsupported operandtype(s)for /:'int' and 'str'  #又报出了别的异常信息

相关教程