首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止程序在崩溃时意外关闭(包括尝试捕捉)

防止程序在崩溃时意外关闭(包括尝试捕捉)
EN

Stack Overflow用户
提问于 2014-01-16 11:12:45
回答 3查看 3.9K关注 0票数 0

我在我的系统中使用第三方软件来控制代理。

所以每个网络连接都使用代理软件。

在我的windows应用程序中,我有一些代码可以通过FTP上传我的文件。

在ftp类和主要应用程序中,我有许多试图捕获,以防止显示任何错误并停止应用程序。

当该代理软件运行,而ftp类试图连接到我的服务器时,我突然关闭了代理软件,我的程序因未知原因关闭。

我怎样才能阻止这个程序在崩溃的时候结束并保持它的活力?

为什么那些渔获物不能做好他们的工作?

编辑1 :

那些捕获部件永远不会运行以获得错误。

请看这张照片:

但是正常的异常窗口如下所示:

编辑2 :

我的尝试/捕捉如下:

代码语言:javascript
复制
class My_FTP
{
    public void upload()
    {
      try
      {
        //Codes

        CRASH IS HERE AND WE NEVER JUMP TO CATCH EREA!!!!!!!!!!!!!!!!!!!!

        while (bytesSent != 0)
       {

       }
      }
      catch (Exception ex)
      {
        Console.WriteLine(ex.ToString());
      }
    }
}


private void Form1_Load(object sender, EventArgs e)
{
  try
  {
    My_FTP my_ftp_ = new My_FTP();
    my_ftp_.upload();
  }
  catch (Exception ex)
  {
    Console.WriteLine(ex.ToString());
  }

  try
  {
    //Other_Codes;
  }
  catch (Exception ex)
  {
    Console.WriteLine(ex.ToString());
  }

}    

我试过这些:

线程:“vshost32 32-clr2.exe已停止工作” ->不以编程方式

VShost32.exe停止工作,但我可以继续调试 ->无济于事

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-16 13:01:34

这可能是因为第三方库中的本机代码,而且您无法以这种方式捕获本机异常,我在C#中使用C#时也遇到了类似的问题,

您可以在这里找到一些帮助来捕获本机异常(http://msdn.microsoft.com/en-us/magazine/dd419661.aspx)。

相似问题您能在C#代码中捕获本机异常吗?

还尝试从catch语句中删除(Exception ex)

票数 1
EN

Stack Overflow用户

发布于 2014-01-16 11:24:23

也许您应该在捕获异常时添加某种日志记录。程序关闭的原因是,当抛出异常时,将退出该方法,导致主方法退出。

票数 1
EN

Stack Overflow用户

发布于 2014-01-16 11:53:26

在try catch块中,尝试在catch中添加一些逻辑,例如:

代码语言:javascript
复制
catch(Exception e)
{
   MessageBox.Show("Error: " + e.Message, "Exception Thrown", MessageBoxButtons.OK, MessageBoxIcon.Error);
   OtherMethod(); //Or something like this
}

显然会有更好的方法来解决这个问题,我只是提供一个简单的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21160149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档