异常处理

问题描述:

的Python 3投掷的错误我从上周开始学习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 

您正试图捕获一个实例ValueError(),其中Python期望您在类型上进行过滤。删除通话:

except ValueError: 
    print ("Wrong choice")