我推断年龄:
def retrieve_age(person):
try:
return int(person["age"])
except ValueError:
print("You entered the age incorrectly")
except int(person["age"])<=0:
print("You entered a negative age")
print(retrieve_age({"name" : "Max", "age": -5}))
问题:
except int(person["age"])<=0:
print("You entered a negative age")
这不起作用。如何针对负输入创建自定义异常?
答案 0 :(得分:1)
Python是一种OOP语言。因此,请声明一个继承自类exception
的异常类,并在新的类异常中做任何您想做的事情:
class MyException(Exception):
def __init__(self,*args,**kwargs):
....
然后使用它引发新的异常(MyException
):
raise MyException("MSG")
答案 1 :(得分:0)
示例中的负年龄是逻辑错误。您需要自己进行检查,然后引发异常。您可以创建亚当回答的自定义例外,也可以在消息中提出默认例外。
if int(person["age"])<=0:
raise Exception("You entered a negative age")