定义一个 Circle 类,其中有求面积的方法,当半径小于 0 时, 抛出一个用户自定义异常。
时间: 2024-10-12 12:08:31 浏览: 26
CircleTest_java_设计一个circle_点类_圆类_
5星 · 资源好评率100%
当你定义一个 `Circle` 类并且希望在计算面积之前检查半径是否为负数时,你需要创建一个自定义异常类型,并使用这个异常处理负面半径的情况。首先,让我们定义一个名为 `NegativeRadiusError` 的用户自定义异常,然后在 `Circle` 类中实现必要的方法。
```python
class NegativeRadiusError(Exception):
"""自定义异常用于处理负半径"""
def __init__(self, message="半径不能为负"):
self.message = message
super().__init__(self.message)
class Circle:
def __init__(self, radius):
if radius < 0:
raise NegativeRadiusError
self.radius = radius
def area(self):
"""计算圆的面积,如果半径为负,则抛出异常"""
try:
return 3.14159 * (self.radius ** 2)
except NegativeRadiusError as e:
print(f"错误: {e}")
```
在这个 `Circle` 类中,`__init__` 方法在创建实例时检查半径,如果它是负数,就引发 `NegativeRadiusError` 异常。`area` 方法尝试计算并返回面积,如果在计算过程中遇到负半径,也会捕获并打印异常信息。
现在你可以像这样使用 `Circle` 类:
```python
try:
circle = Circle(-5) # 这将会触发 NegativeRadiusError
except NegativeRadiusError as e:
print(e)
circle_with_valid_radius = Circle(7)
print(circle_with_valid_radius.area()) # 输出圆的面积
```
阅读全文