自定义一个异常,在输入的数据不是数字时发生。在程序中故意输入字母,抛出该异常。
时间: 2024-02-05 07:13:06 浏览: 22
可以使用 Python 中的 `Exception` 类来自定义一个异常类,代码如下:
```python
class NotANumberError(Exception):
def __init__(self, input_value):
self.input_value = input_value
def __str__(self):
return f"'{self.input_value}' is not a number."
```
该异常类继承了 `Exception` 类,并添加了一个名为 `input_value` 的属性,用于记录引发异常的输入值。同时,也重写了 `__str__` 方法,用于返回异常的字符串表示形式。
接下来,我们可以编写一个简单的程序来测试该异常类:
```python
while True:
try:
input_value = input("请输入一个数字:")
if not input_value.isdigit():
raise NotANumberError(input_value)
else:
print(f"你输入的数字是:{input_value}")
break
except NotANumberError as e:
print(e)
```
在上述程序中,我们通过 `input` 函数获取用户输入,并使用 `isdigit` 方法判断输入值是否为数字。如果不是数字,则会抛出 `NotANumberError` 异常,并输出异常的字符串表示形式。如果输入值为数字,则会打印出输入值,并退出循环。
我们可以尝试输入一个字母或其他非数字字符,查看程序是否会抛出 `NotANumberError` 异常。