C# 覆盖并终止阻止调用finally的程序。实现这一发现的一个关键点是,Windows 10处理异常的方式与Windows 7不同。我在我的开发机器上尝试了这个,当WER被取消时,它仍然运行Win7,程序仍然冻结并变灰。在附近的Win10机器上,它的工作方式与

C# 覆盖并终止阻止调用finally的程序。实现这一发现的一个关键点是,Windows 10处理异常的方式与Windows 7不同。我在我的开发机器上尝试了这个,当WER被取消时,它仍然运行Win7,程序仍然冻结并变灰。在附近的Win10机器上,它的工作方式与,c#,exception-handling,try-finally,C#,Exception Handling,Try Finally,覆盖并终止阻止调用finally的程序。实现这一发现的一个关键点是,Windows 10处理异常的方式与Windows 7不同。我在我的开发机器上尝试了这个,当WER被取消时,它仍然运行Win7,程序仍然冻结并变灰。在附近的Win10机器上,它的工作方式与您所展示的一样。我的猜测是WER停止执行,在Win7上永远不会恢复执行,而在Win10上,WER分离后程序被释放。 static void Main() { int i = 0; try { int j

覆盖并终止阻止调用finally的程序。实现这一发现的一个关键点是,Windows 10处理异常的方式与Windows 7不同。我在我的开发机器上尝试了这个,当WER被取消时,它仍然运行Win7,程序仍然冻结并变灰。在附近的Win10机器上,它的工作方式与您所展示的一样。我的猜测是WER停止执行,在Win7上永远不会恢复执行,而在Win10上,WER分离后程序被释放。
static void Main()
{
    int i = 0;
    try
    {
        int j = 1 / i; // Generate a divide by 0 exception.
    }
    finally
    {

        Console.Out.WriteLine("Finished");
        Console.In.ReadLine();
    }
}
int i = 0;
        try
        {
            int j = 1 / i; // Generate a divide by 0 exception.
        }
        catch(Exception e)
        {
            Console.Out.WriteLine("Exception caught");
        }
        finally
        {

            Console.Out.WriteLine("Finished");
            Console.In.ReadLine();
        }
static void Main(string[] args)
{
    try
    {
        CatchTest();
    }
    catch (Exception)
    {

    }
}

private static void CatchTest()
{
    int i = 0;
    try
    {
        int j = 1 / i; // Generate a divide by 0 exception.    
    }
    finally
    {
        Console.Out.WriteLine("Finished");
        Console.In.ReadLine();
    }
}
static void Main() 
{
  try
  {
      int i = 0;
      try
      {
         int j = 1 / i; // Generate a divide by 0 exception.
      }
      finally
      {
          Console.Out.WriteLine("Finished");
          Console.In.ReadLine();     
      }
  }
  catch (Exception ex)
  {
      Console.WriteLine(ex.ToString());
  }
}
static void Main(string[] args)
{
    try{
        throw new Exception("");
    } finally {
        Console.WriteLine("I am never called!");
        Console.ReadLine();
    }
}