gpt4 book ai didi

c# - 在十进制方法 c# 中尝试/捕获

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:27 24 4
gpt4 key购买 nike

首先,这是我正在做的一项任务,但这不是它的要求,只是我想使用的东西。我正在尝试将 try/catch 语句与我的十进制方法结合使用。

    private decimal NewCar()
{
decimal newCar = 0.00m;

try
{
newCar = decimal.Parse(vehicleTextBox.Text);
}
catch (FormatException)
{
MessageBox.Show("Invalid entry (Format Exception). \n" + "Please enter a valid decimal number.");
Keyboard.Focus(vehicleTextBox);
vehicleTextBox.SelectAll();
return;
}
catch (Exception)
{
MessageBox.Show("Invalid entry (General Exception). \n" + "Please enter a valid decimal number.");
Keyboard.Focus(vehicleTextBox);
vehicleTextBox.SelectAll();
return;
}

if (newCar < 0)
{
MessageBox.Show("Invalid entry (Negative Value). \n" + "Please enter a valid decimal number.");
Keyboard.Focus(vehicleTextBox);
vehicleTextBox.SelectAll();
return;
}

return newCar;
}

我收到一条错误消息“需要一个可转换为‘十进制’的类型的对象”,但是如果我将 newCar 变量放在那里,或者删除 try/catch 中的 return 语句,我会收到太多消息框并且它不会停止计算。我需要这是一个十进制方法,以便在其他计算中使用。

感谢任何帮助。

最佳答案

您说过您的方法将返回一个小数。所以你必须返回一个小数。你不能只写 return,因为那表示你什么都没有返回。

现在,您可能应该将错误处理移出该方法,而只允许异常冒泡。由于您的方法正在解析汽车值(顺便说一句,您的方法名称应该表明,NewCar 表明它正在创建一个新的汽车对象),它不一定与用户交互。它的唯一目的应该是解析文本并给你一个小数。

所以你有两个选择:

  1. 您的方法返回一个错误代码(例如,-1),以便您可以返回一个合适的值。另一种选择是创建一个包装类,用于存储“成功”标志、数据和可能的异常。
  2. 让异常简单地冒出来。

关于c# - 在十进制方法 c# 中尝试/捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246626/

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