winform怎样集中处理多个事件的异常?

TryToday 2014-10-31 04:28:49
比如窗口中有10个按钮,每个功能都可能发生异常,不希望在每个按钮中try catch 异常,怎样在一个地方try catch所有的异常?
...全文
156 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
chensuqian 2014-10-31
  • 打赏
  • 举报
回复
如果窗口上有十个按钮,不如把这十个按钮绑定到一个Onclick事件上。
TryToday 2014-10-31
  • 打赏
  • 举报
回复
感谢!找了篇文章: http://www.cnblogs.com/kissazi2/p/3393151.html
程序猿老曾 2014-10-31
  • 打赏
  • 举报
回复
try catch怎么会导致窗口被关闭呢?? 是你自己写的关闭吧??或者你没有捕捉到真正发生的异常
exception92 2014-10-31
  • 打赏
  • 举报
回复
引用 9 楼 TryToday 的回复:
感谢楼上!还有个问题,对于WPF窗口没有那个事件,怎么破?

 /// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
             Application.Current.DispatcherUnhandledException+=..........
        }
    }
TryToday 2014-10-31
  • 打赏
  • 举报
回复
感谢楼上!还有个问题,对于WPF窗口没有那个事件,怎么破?
vpjian 2014-10-31
  • 打赏
  • 举报
回复
在Main函数里增加Application.ThreadException事件的处理。这样可以解决90%以上的问题。


static void Main(params string[] parames)
 {
                Application.ThreadException += Application_ThreadException;
               ......
}

static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{

            MessageBox.Show(e.Exception.Message);
 }
TryToday 2014-10-31
  • 打赏
  • 举报
回复
其实异常处理只是提示用户出错的信息,但不希望捕获异常之后整个窗口被关闭了
phommy 2014-10-31
  • 打赏
  • 举报
回复
捕获Application.ThreadException事件即可
poloyzhang 2014-10-31
  • 打赏
  • 举报
回复
这个方法不好. 官方建议在出异常的地方加上 try catch . 即是原子的. 因为各个按钮的异常不一样. 不容易排错. 不要为了省这一道工序而去做不擅长的事情. 一个建议.
exception92 2014-10-31
  • 打赏
  • 举报
回复
在你 实例化窗口的地方加try catch。。。。
TryToday 2014-10-31
  • 打赏
  • 举报
回复
楼上,怎么写呢,给个资源也行啊
gxingmin 2014-10-31
  • 打赏
  • 举报
回复
把10个按钮的click事件绑定到一个事件方法上 或者在main函数里加个大的try catch,在其他地方就不用加try catch了,所有的异常都到main里
搬砖的码农 2014-10-31
  • 打赏
  • 举报
回复
添加个全局引用类捕获异常

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧