gpt4 book ai didi

c# - 当方法需要 double 时尝试返回异常错误

转载 作者:行者123 更新时间:2023-11-30 22:16:03 26 4
gpt4 key购买 nike

这里是一位编码新手,正在寻求一些建议!

我有以下方法 - 将千克转换为磅的简单重量转换器,它是大型控制台应用程序的一部分。用户选择他们想要的转换方案,然后输入他们的体重,它就会转换它。我正在为它做一些单元测试以更好地理解它们,并决定添加一些代码,如果用户输入负数将返回异常,只是为了让它更健壮。代码如下:

    public static double KilogramsToPounds(string weightInKilos)
{
//Convert parameter to a double for calculation
double kiloWeight = Double.Parse(weightInKilos);

//Convert Kilograms to Pounds
double poundWeight = kiloWeight * 2.20462;
try
{
if (kiloWeight < 0)
{
throw new ArgumentOutOfRangeException();
}
else
{
return poundWeight;
}
}
catch (ArgumentOutOfRangeException argEx)
{
Console.WriteLine(argEx);
}

return 0;

}

但是,当它运行时,它总是会返回 0,因为它需要一个 double 作为它的返回类型。所以你会得到 ArgumentOutOfRange 异常和一个 0,因为它需要一个 double 值。

我只是想知道是否有任何方法可以基本上说“如果您输入一个小于 0 的数字,您会收到此错误消息,但如果您输入一个有效的正数,您将得到正确的数字结果 ”?因为似乎无论您需要提供一个数值以及错误消息,都需要为它提供一个数值,否则您将收到“并非所有代码路径都返回一个值”错误。

非常感谢任何帮助。

注意 - 我应该添加字符串参数“weightInKilos”取自用户的控制台输入。显示选项的代码在不同的文件中,转换率在单独的文件中。

最佳答案

从您的方法中删除 try-catch。抛出你的异常(exception)。您的方法不应该捕获它自己抛出的异常。

try-catch 放在对 KilogramsToPounds 的调用周围。

关于c# - 当方法需要 double 时尝试返回异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com