3. 自定义一个异常类,继承Exception类, 用于以下程序检测处理:要求判断input()输入的字符串长度是否在5至20之间,如果小于5,例如输入长度为3则输抛出异常提示:’The input is of length 3,expecting at least 5',大于20,例如输入长度为22,则抛出异常提示:’’The input is of length22,expecting at most 20’,检测正常则输出"print success' 。提示:利用raise激活该自定义异常
时间: 2024-03-03 21:47:09 浏览: 35
好的,根据您的要求,我可以给您提供一个代码示例,来演示如何自定义一个异常类,并用它来检测处理 `input()` 输入的字符串长度是否在5至20之间。
以下是一个示例代码:
```python
class InputLengthError(Exception):
def __init__(self, length, message):
self.length = length
self.message = message
def __str__(self):
return f"The input is of length {self.length}, {self.message}"
while True:
try:
s = input("请输入一个长度在5至20之间的字符串:")
if len(s) < 5:
raise InputLengthError(len(s), "expecting at least 5")
elif len(s) > 20:
raise InputLengthError(len(s), "expecting at most 20")
else:
print("print success")
break
except InputLengthError as e:
print(e)
```
这段代码首先定义了一个 `InputLengthError` 类,它继承了 `Exception` 类。在初始化方法中,我们定义了两个属性 `length` 和 `message`,用于保存异常信息。然后,我们重写了 `__str__` 方法,用于返回异常的字符串描述。
在主程序中,我们使用 `try-except` 结构对用户的输入进行异常处理。如果输入的字符串长度小于5或大于20,则会抛出自定义的 `InputLengthError` 异常,并将其异常信息打印出来。如果输入正常,则会输出 "print success"。
希望这个代码示例能够帮助到您。
阅读全文