有点编码新手在这里寻找一些建议!
我有以下方法 - 一个简单的公斤到磅的重量转换器,这是一个更大的控制台应用程序的一部分。用户选择他们想要的转换方案,然后输入他们的重量,它就会转换它。我正在对其进行一些单元测试以更好地理解它们,并决定添加一些代码,如果用户输入负数,将返回异常,只是为了使其更健壮。代码如下:
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,因为它需要双精度。
我只是想知道是否有任何方法可以基本上说“如果您输入低于 0 的数字,则会收到此错误消息,但如果您输入有效的正数,您将获得正确的数字结果”?因为无论您是否需要提供一个数值来让它快乐以及错误消息,否则您将收到“并非所有代码路径都返回值”错误。
任何帮助是极大的赞赏。
注意 - 我应该添加来自用户控制台输入的字符串参数“weightInKilos”。显示选项的代码位于不同的文件中,转换率位于单独的文件中。