【发布时间】:2021-01-10 09:47:18
【问题描述】:
我是 python 新手,目前正在学习 python 中的错误处理。有一个练习我想解决但不知道如何解决。
函数接收r的值并返回音量 领域。如果 r 等于或小于零被传递给 该函数,该函数返回错误数据的通知 进入。
防止函数崩溃。期间如有异常 执行时,函数必须返回错误消息。
我的代码
import math
def vol(r):
try:
return (4/3*math.pi*r**3)
except TypeError:
return "A type error has occurred."
当我测试 print(vol(-3)) 时,结果是 -113.09733552923254,但它应该警告我这个数字小于 0。
【问题讨论】:
-
为什么你认为它应该警告你?您不会在实现中检查 r 的值。
-
Coderunner 将此标记为错误,因为预期的输出是“您输入了错误的值”。我的代码会返回它的音量,即使它是 0。
-
检查 r 的值,如果为负,则引发 ValueError 异常。检查如何在 python 中引发异常
-
对,因为您的实现不检查值。
r**3可以计算r的负值就好了,即使在这种情况下它没有物理意义,它也不会抛出错误。 -
返回错误信息的要求是糟糕的设计。 调用者可以根据需要使用
try/except捕获异常。
标签: python error-handling