如何创建自定义异常?此异常不起作用

时间:2020-07-10 10:51:25

标签: python

我推断年龄:

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") 

这不起作用。如何针对负输入创建自定义异常?

2 个答案:

答案 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")
相关问题