,然后进行处理,但是这段代码中用到了BeginInvoke的语句块,而我使用了匿名方法,那么在匿名方法中的异常,外面是捕捉不到的。所以会出现无法处理的异常情况,正确的代码应该这样:
代码如下 | 复制代码 |
this.BeginInvoke(new MethodInvoker(delegate() { bool flag = false; try { flag = service.Authentication();//此处可能造成异常 if (flag) { this.DialogResult = DialogResult.OK; } else { MessageBox.Show("用户名或者密码错误。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { Program.notifity.ShowBalloonTip(2000, "应用程序错误", ex.Message, ToolTipIcon.Error); } })); |
上面代码中调用了WebService,但是断网的时候会出现无法连接,因为写在了匿名方法中,所以this.BeginInvoke外面的tryf块无法捕获WebService产生的异常信息,所以,要将tryf块写在里面。