Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  Asp.net  >  正文 asp.net 中WinForm出现无法处理的异常解决办法

asp.net 中WinForm出现无法处理的异常解决办法

发布时间:2016-12-03   编辑:www.jquerycn.cn
jquery中文网为您提供asp.net 中WinForm出现无法处理的异常解决办法等资源,欢迎您收藏本站,我们将为您提供最新的asp.net 中WinForm出现无法处理的异常解决办法资源
inForm程序会出现无法处理的异常有多少种情况我不清楚,我今天就遇到一个,这样无法获取到异常信息的情况,对用户的体验很不好,后来查到我的代码中为何出现这样的情况,因为我习惯把整体的语句块包在最外层,来获取中间可能出现的异常

,然后进行处理,但是这段代码中用到了BeginInvoke的语句块,而我使用了匿名方法,那么在匿名方法中的异常,外面是捕捉不到的。所以会出现无法处理的异常情况,正确的代码应该这样:

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5857')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5857>
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块写在里面。

您可能感兴趣的文章:
asp.net 中WinForm出现无法处理的异常解决办法
无法执行程序。所执行的命令为 C:Windows 问题解决办法
百度卫士清理注册列表后系统异常如何解决
.NET 2.0中的企业库异常处理块
c# WinForm捕获全局变量异常的办法
NET MVC与WebForm的区别
php中的异常机制理解分析
C# Winform调用WEB Service API的示例代码
WinForm中DataGridView重新绑定后前台界面不刷新的问题解决办法
asp.net处理ajax 数据异常方法

[关闭]