出现异常后,在 finally{} 外的语句也被执行?using System;
public class Test
{
   public static void Main()
   {
      int a= 10;
      int b;
      int c = 0;
      Console.Write("输入一个数:");
      b = Convert.ToInt32(Console.ReadLine());
      try
      {
         c = a / b;
        
      }
      
      catch(Exception)
      {
        Console.WriteLine("除数不能为0!"); 
      }
   
       
      finally
      {
         if(c != 0)
         {
           Console.WriteLine("商为{0}",c);
         }
      }
      Console.WriteLine("最后一句"); //为什莫出现异常也会执行,那finally 还有什末用?
   }
}

解决方案 »

  1.   

    catch里面的语句你也要加个退出的语句哈、return
      

  2.   

    finally只是对于try-catch块起作用的,你如果要终止程序,必须自己在finally里面abort。
      

  3.   

    这就跟if...else...语句一样,执行完后会继续执行下面的程序
      

  4.   

    前边几位都答非所问阿!是的!出现异常照样执行!finally部分是无论如何都会执行的!
      

  5.   

    如果不用return ,下面会执行
      

  6.   

    不论return与否,不论异常与否,只要程序没有非法退出,执行进入try之后finally是必定要执行的!
      

  7.   

    你把代码改成
     catch(Exception)
          {
            throw;
          }
    调试时能看到错误信息,那最后一句就不执行了。
    所以你必须在finally里写一些资源清理的代码。
    现在你在catch(Exception)子句里写的是一些普通的错误提示语句,所以finally有没有都无所谓