当前位置: 代码迷 >> C# >> 轻松了解C#错误处理 try—catch—finally
  详细解决方案

轻松了解C#错误处理 try—catch—finally

热度:708   发布时间:2016-05-05 04:49:25.0
轻松了解C#异常处理 try—catch—finally

   大家都听说过一个短语叫做不按套路出牌。这个多用来说创新或者说不按照常规做事却做成了,而且很让人惊

讶。 比如古代打仗也有不按兵法,出其不意取胜的;现代抗日电视剧《亮剑》李云龙就是个典型不按套路打仗的

人,敌人闻之丧胆。 类似的例子数不胜数,可是要在编程中,遇到类似的事情可能会使我们辛苦编写的软件成为肉

鸡。那我们该怎么办才好呢?

 

   在软件开发过程中由于考虑不周,程序运行时可能不按照常规出牌,我们不能保证有些错误或不足不会出现。但

为了最大程度来减少这些错误,我们编写足够强壮的代码来处理这些错误,而不必中断程序的执行。兵来将挡,水来

土掩。我有try-catch-finally利剑,看你能奈我何?

 

   C#包含结构化异常处理的语法(SEH),3个关键字try-catch-finally 来标记能处理异常的代码和指令。如果发

生异常就可以使用这些指令来处理异常。

try{    ……}catch(<exceptionType> e){    ……}finally{  ……}

 

简单了解各个代码块:
      

       try 代码块:包含导致可能产生异常的代码

       catch代码块:包含当出现异常时需要执行的代码

       finally代码块:包含总是会执行的代码

 

三者存在关系:

 

      1、三者可以同时存在

      2、只有try块和finally块,而没有catch块(无catch块时,必须有finally块)

      3、有一个try块和好几个catch块执行情况:

           ①在发生异常的地方中断程序的执行

           ②如果有catch块存在,就检查它里面是否有匹配的异常的类型,没有的话,就执行finally块;如果没有catch块,则执行finally块。

 

代码示例:

class Program    {        static void Main(string[] args)        {            try            {                Console.WriteLine("Executing the try statement.");                throw new NullReferenceException();            }            catch (NullReferenceException e)            {                Console.WriteLine("{0} Caught exception #1.", e);            }            catch            {                Console.WriteLine("Caught exception #2.");            }            finally            {                Console.WriteLine("Executing finally block.");            }            Console.Read();        }    }


 

 

1楼u01304700558分钟前
不按套路出牌,总结的不错啊,c#努力去掌握啦