首页 > 解决方案 > 自定义异常 - python3

问题描述

我正在尝试通过使用将处理不在我希望他们输入的适当值范围内的用户输入的类来创建自定义异常(例如百分比标记必须在 0 到 100 之间),但是,我没有不知道我做错了什么。这是我的代码。谢谢

mark = 0

class illegal(Exception):
    pass

while True:
   try:
       Mark = int(input("Enter a mark out of 100 to see if its valid or not: "))
       if Mark < 0 or 100 < Mark:
           raise illegal
           break
      except illegal:
         print("Invalid mark")

print("Valid mark")

标签: python-3.xexception

解决方案


一些修复,但请参阅我的内联评论:

class IllegalMark(Exception): # use CamelCase and name meaningfully
    pass

while True:
    try:
        mark = int(input("Enter a mark between 0-100 to test validity: "))
        if mark not in range(0, 101):
            raise IllegalMark
            # break # don't need this since you call 'raise'
    except IllegalMark:
        print("Invalid mark")
        break # if you want to end on invalid, otherwise leave out

推荐阅读