2016-08-18 2 views
0

исключения я начал изучать питон на прошлой неделе, и я не могу получить то, что здесь не так:Python Ошибка 3 метание для обработки

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 

ответ

4

Вы пытаетесь поймать пример от ValueError(), где Python ожидает, что вы будете фильтровать на тип. Удалить звонок:

except ValueError: 
    print ("Wrong choice") 
Смежные вопросы