我试图将try尝试分组并捕获6个文本框值。在课堂上我描述了类似的6种方法:
public void Setpajamos(int newValue)
{
if (newValue >= 0 && newValue <= 30)
pajamos = newValue;
else
throw new Exception("Patikrinkite duomenis");
}
在主要表单中,我尝试并捕获代码:
try
{
BustoKreditas.Setvaikusk(newvaikusk);
BustoKreditas.Setpajamos(newpajamos);
BustoKreditas.Setisipareigojimai(newisipareigojimai);
BustoKreditas.SetPaskolosSuma(newpaskolosSuma);
BustoKreditas.Setlaikotarpis(newlaikotarpis);
BustoKreditas.Setpastatoamzius(newpastatoamzius);
}
catch
{
MessageBox.Show("value to big");
}
问题是try和catch仅适用于第一个文本框。对于所有其他人,我可以放任何我想要的号码,它不会显示任何消息。
答案 0 :(得分:1)
我假设您正在尝试收集所有错误
(在您的代码中,第一个异常将导致代码跳转到您的catch
,因此不会调用任何其他方法。)
在这种情况下你可以尝试这样的事情:
public void Setpajamos(int newValue, List<string> errors)
{
if (newValue >= 0 && newValue <= 30)
{
pajamos = newValue;
}
else
{
errors.Add("Patikrinkite duomenis");
}
}
以您的主要形式:
var errors = new List<string>()
BustoKreditas.Setvaikusk(newvaikusk, errors);
BustoKreditas.Setpajamos(newpajamos, errors);
BustoKreditas.Setisipareigojimai(newisipareigojimai, errors);
BustoKreditas.SetPaskolosSuma(newpaskolosSuma, errors);
BustoKreditas.Setlaikotarpis(newlaikotarpis, errors);
BustoKreditas.Setpastatoamzius(newpastatoamzius, errors);
if (errors.Count > 0)
{
MessageBox.Show(string.Join(Environment.NewLine, errors));
}