【问题标题】:How to stop exception如何停止异常
【发布时间】:2013-11-21 03:56:37
【问题描述】:

如果我取消某些内容,如何防止程序进入 try-catch 块? 例如:

try{
  int i=int.Parse(Interaction.InputBox("BlahBlahBlah"));
}
catch{
  //error handling
  return
}

但是如果我按“取消”或顶部的 X 怎么办?它进入try-catch,并认为这是一个例外。所以它会进行错误处理。我该如何阻止这种情况?

【问题讨论】:

  • 你在用winforms吗?
  • 是的,我使用的是winforms,因为我使用的是Interaction.InputBox()函数。
  • 不知道你在问什么......导致这个问题的障碍是什么?
  • 这是单线程还是你有后台工作人员处理这个逻辑?
  • 问题是:如果我在InputBox上按“取消”,如何阻止程序流进入try-catch块

标签: c# winforms error-handling


【解决方案1】:

根据文档 (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.interaction.inputbox(v=vs.110).aspx),如果用户取消,则会返回一个空字符串。

你会想要这个:

do {
    String text = Interaction.InputBox("Enter a number");
    if( text == "" ) return -1;
    Int32 number;
    if( Int32.TryParse( text, out number ) ) return number;
} while( true );

这样它会一直提示用户,直到输入一个有效的整数或者他们取消对话框。

【讨论】:

  • 这正是您在 VB6 天时所做的。
  • 那么您打算在旧代码中使用i 做什么?你总是可以将上面的代码包装在一个返回int的函数中,然后执行int i = YourNewFunction()
猜你喜欢
  • 2014-05-05
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多