2. 输入两个数,输出两个数的商,自定义异常类NegativeException和ZeroException用于检测输入的除数为负数和零时,抛出异常。 【问题描述】 输入两个数,输出两个数的商,自定义异常类NegativeException和ZeroExcept
时间: 2023-11-28 17:48:25 浏览: 51
ion用于检测输入的除数为负数和零时,抛出异常。
【解决方案】可以使用自定义异常类来处理输入的除数为负数和零的情况。具体实现如下:
```python
class NegativeException(Exception):
pass
class ZeroException(Exception):
pass
def divide(a, b):
if b < 0:
raise NegativeException("除数不能为负数")
elif b == 0:
raise ZeroException("除数不能为零")
else:
return a / b
try:
a = float(input("请输入被除数:"))
b = float(input("请输入除数:"))
result = divide(a, b)
print("结果为:", result)
except ValueError:
print("输入格式有误,请输入数字")
except NegativeException as e:
print(e)
except ZeroException as e:
print(e)
except Exception:
print("未知异常")
```
在这个程序中,我们定义了两个自定义异常类:NegativeException和ZeroException,分别用于处理除数为负数和零的情况。在divide函数中,我们首先判断除数是否为负数或零,如果是的话,就抛出相应的异常。如果除数不为负数或零,就返回两个数的商。在主程序中,我们使用try-except结构来捕获异常,如果输入格式有误,就输出“输入格式有误,请输入数字”,如果除数为负数或零,就输出相应的异常信息,否则就输出两个数的商。
【示例输出】
```
请输入被除数:10
请输入除数:2
结果为: 5.0
请输入被除数:10
请输入除数:0
除数不能为零
请输入被除数:10
请输入除数:-2
除数不能为负数
请输入被除数:a
输入格式有误,请输入数字
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)