c# - 防止程序在崩溃时意外关闭(包括使用 TRY-CATCH)

标签 c# ftp crash windows-applications

我在我的系统中使用第三方软件来控制代理。
所以每个网络连接都使用该代理软件。
在我的 Windows 应用程序中,我有一些用于通过 上传文件的代码FTP .
我在 ftp 类和主应用程序中有很多 try-catch,以防止显示任何错误并停止应用程序。
当该代理软件运行并且该 ftp 类试图连接到我的服务器时,我突然关闭了该代理软件,我的程序因未知原因而关闭。
我怎样才能阻止该程序在崩溃时关闭并使其保持活力?
为什么那些 tr-catch 不能做他们的工作?

编辑 1:
那些捕获部分永远不会运行以获得错误。
请看这张照片:

IMAGE 1

IMAGE 2

但正常的异常窗口是这样的:

IMAGE 3

编辑 2:
我的 try/catch 如下所示:

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());
  }

}    



我试过这些:

Thread: "vshost32-clr2.exe has stopped working" -> 不是以编程方式

VShost32.exe stopped working, but I can continue debugging -> 没有帮助

最佳答案

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

您可能会在此处找到一些帮助来捕获 native 异常 (http://msdn.microsoft.com/en-us/magazine/dd419661.aspx)

类似问题 Can you catch a native exception in C# code?

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

关于c# - 防止程序在崩溃时意外关闭(包括使用 TRY-CATCH),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21160149/

相关文章:

c# - 将服务注入(inject)另一个服务是不好的做法吗?

shell - 用于从 ftp 中删除旧文件的 Linux shell 脚本

tomcat - spring boot embedded Tomcat的crash log在哪里?

objective-c - 仅当从仪器运行时,iOS应用程序才会崩溃(自动化)

objective-c - Objective-C 中的动态二维 C 数组崩溃

c# - 如何阻止 GridView 中的特定列

c# - 一个asp.net页面结构问题

c# - DateTimeOffset 格式并获得与 moment.js 相同的输出

asp.net - 将 ASP.NET 网站与 Web 服务器同步?

php - libcurl 的 CURLINFO_RESPONSE_CODE 和 PHP 的 curl_getinfo() 用于 FTP 传输