Python自定义类抛出WeekDayError异常未生效问题排查
错误原因
你编写的代码中WeekDayError()仅完成了异常类的实例化操作,并未主动触发异常抛出流程。Python中必须使用raise关键字才能主动抛出异常,只有被raise触发的异常才会被外层的except语句捕获匹配。
修复方案
将判断分支内的代码修改为如下内容即可:
if day not in Weeker.list: raise WeekDayError()
完整可运行代码
class WeekDayError(Exception): pass class Weeker: list=["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"] def __init__(self, day): if day not in Weeker.list: raise WeekDayError() try: weekday = Weeker('Monday') print(weekday) except WeekDayError: print("Sorry, I can't serve your request.")
内容的提问来源于stack exchange,提问作者Harald
相关产品推荐
相关产品推荐

