C#怎么判断哪一句引发异常

来源:百度知道 编辑:UC知道 时间:2024/05/11 17:28:53
我用C#做一个windows窗体,里面有多个文本框,而且它们转换的数据类型也各不一样,然后我想点一个按钮如果所有文本框都转换正确则调用成功的方法,如果不成功则分别提示哪一个文本框输入错误,请问怎么做?
一楼的没理解我的意思,我自己当然知道哪个异常了,我是要根据不同的文本框类型转换引发的异常来弹出不同的提示,怎么做?

使用if语句逐个文本框判断,如果转换正确就继续,如果不正确就提示当前文本框转换错误。

主要是在转换之前先进行合法性验证,也是只能逐一验证,全部验证通过后再进行转换,出错的机会就很低了。如果验证不能通过,就提示当前文本框输入有误。

如果不使用if语句,可以进行窗体的控件循环,不过这时就必须把这些文本框和其他的非输入的文本框进行区分。可以通过控件 Name 中+前缀后缀或者其他属性来判断是否为这些文本框。

// 遍历窗体控件
foreach(Control curControl in from.Controls){
// 查看当前控件是否是TextBox
if(curControl is Control.TextBox){
// 假设这些文本控件都是以 in_ 作为前缀命名
if(((TextBox)curControl).Name.SubString(0, 3) == "in_") {
// 进行数据合法性验证
// ...
// 如果没有通过验证, 显示当前控件输入不合法
// ((TextBox)curControl).SetFocus();
// ((TextBox)curControl).SelectAll();
// break; // 跳出验证循环
}
}
}

验证结束后使用同样的方法进行转换就可以了

用F11,调试一下就好了。

try catch啊
throw出的exception应该能显示出足够的信息吧

你是这个意思吗?
try {文本1的内容数据转换语句}
catch{
messagebox.show("文本1的内容写的不对");
return;
}
try {文本2的内容数据转换语句}
catch{
messagebox.show("文本2的内容写的不对");
return;
}