编写Python程序,按用户输入的半径计算圆的面积,若半径为负值则抛出异常
时间: 2024-02-27 13:52:01 浏览: 32
好的,以下是实现该功能的 Python 代码:
```python
import math
class InvalidRadiusError(Exception):
pass
def circle_area(radius):
if radius < 0:
raise InvalidRadiusError("半径不能为负值!")
else:
return math.pi * radius ** 2
try:
radius = float(input("请输入圆的半径:"))
area = circle_area(radius)
print("圆的面积为:", area)
except ValueError:
print("输入的半径必须是数值!")
except InvalidRadiusError as e:
print(e)
```
代码解释:
1. 我们首先定义了一个自定义异常类 `InvalidRadiusError`,它继承自内置的 `Exception` 类,用于在半径为负值时抛出异常。
2. 定义了一个 `circle_area` 函数,用于计算圆的面积。如果半径为负值,则抛出 `InvalidRadiusError` 异常。
3. 在主程序中,我们使用 `try-except` 结构来捕获可能的异常。首先尝试将用户输入的半径转换为浮点数。如果转换失败,则抛出 `ValueError` 异常。否则,调用 `circle_area` 函数计算圆的面积,并输出结果。如果半径为负值,则捕获 `InvalidRadiusError` 异常并输出错误信息。