我的某个窗体中,运行时由于某种原因,触发了异常,用户在操作时,就会不断的提示错误信息,无法再继续,且不说异常是如何产生的,我只想能有个办法能人为的清理这种异常,恢复到正常状态。例如:用户按一下“刷新”按钮,就能清除当前的异常状态,所有错误提示不再出现,恢复到刚进入窗体时的状态。能有办法实现吗?

解决方案 »

  1.   

    你这不叫清除异常,这叫忽略异常,不做处理甚至不提示异常,当然得后果自负。
    try catch 补货异常后,不写任何代码即可忽略异常,但并不是所有异常都能捕获到
      

  2.   

    不知道异常如何发生的又如何能处理,应该找出异常的原因并避免异常的发生,而不是回避它。
    推荐你用EurekaLog来跟踪异常,EurekaLog包治百病,现在就下载,前1000位患者可获3折优惠,还等什么
      

  3.   

    啥叫退出这个异常嘛,你看到异常提示窗的时就表示已经发生了异常,只不过告诉你一下而已。
    如果你是想不弹出异常提示窗,就在seh里下手
    http://blog.csdn.net/hero_yin/article/details/2294691
      

  4.   

    用SetUnhandledExceptionFilter函数吧
      

  5.   

    sololie:你提供的资料不错,我学习一下。想问一下:它是发生 异常时中止应用是吧,我是想退出当前错误,保留在当时模块里就行了。
      

  6.   

    m617105:不用继续往下执行,只要能重新打开这个模块就行了。可是,资料中的代码是halt啊,直接把应用给杀掉了呀。
      

  7.   

    3方控件? 带界面的还是不带界面的?
    如果是主动调用错误,可以调用时用try包括来忽略,如
    try
      oFileSystemObject.CreateDirectory(...);
    except
    end;
    如果错误发生在非主动调用时(带界面的控件),那就有从消息处理着手,拦截该对象的消息处理过程,然后在try中调用原来的消息处理过程,
    如果还是不行,问题就有点棘手。正如Miami_Dexter所说,有些异常发生时,堆栈已经变得不安全,即时屏蔽了,很可能导致其他地方不稳定,尤其是一些堆栈溢出导致的异常。
      

  8.   

    在界面创建时加入Application.OnException:=MyException;应就可以抛弃相关异常