Python 3抛出异常处理错误

时间:2016-08-18 08:33:22

标签: python python-3.x exception-handling

我上周开始学习python而且我在这里无法解决错误:

def add(x,y):
    """Adds 2 numbers and returns the result"""
    return x+y

def sub(x,y):
    """Subtracts 2 numbers and returns the result"""
    return x-y


a = int(input("Enter first number"))
b = int(input("Enter second number"))
c = int(input("Enter 1 for subtraction , 2 for addition and 3 for both"))
try:
    if c>3:
        raise ValueError()
except ValueError():
    print ("Wrong choice")
else:
    print ("Your choice is ",c)
if (c==1):
    print ("Subtraction of 2 numbers=",(sub(a,b)))
if (c==2):
    print ("Addition of 2 numbers = ",(add(a,b)))
if (c==3):
    print ("Subtraction of 2 numbers=",(sub(a,b)))
    print ("Addition of 2 numbers = ",(add(a,b)))

如果我输入4则会抛出此错误:

Traceback (most recent call last):
  File "C:/Program Files (x86)/Python35-32/calculator.py", line 15, in <module>
    raise ValueError()
ValueError

在处理上述异常期间,发生了另一个异常:

Traceback (most recent call last):
  File "C:/Program Files (x86)/Python35-32/calculator.py", line 16, in <module>
    except ValueError():
TypeError: catching classes that do not inherit from BaseException is not allowed

1 个答案:

答案 0 :(得分:4)

您正在尝试捕获ValueError()实例,其中Python希望您在类型上进行过滤。删除电话:

except ValueError:
    print ("Wrong choice")