zoukankan      html  css  js  c++  java
  • 异常处理分析

     1  class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Console.WriteLine(GetValue());
     6             Console.ReadLine();
     7         }
     8 
     9         static int GetValue()
    10         {
    11             int a = 1; // 1 or 0
    12             int b = 1;
    13             int aa = 10;
    14             try
    15             {
    16                 int c = b / a;
    17                 return aa;
    18             }
    19             catch (DivideByZeroException e)
    20             {
    21             }
    22             finally
    23             {
    24                 aa = 20;
    25             }
    26             return 2;
    27         }
    28     }

    1.异常没有发生,最后的输出结果为10。执行c=b/a;,返回aa的值10。在返回到调用代码前执行finally块。执行finally块中的语句给aa赋值20,这个20不影响返回的值10。return 2;不会执行。

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Console.WriteLine(GetValue());
     6             Console.ReadLine();
     7         }
     8 
     9         static int GetValue()
    10         {
    11             int a = 0; // 1 or 0
    12             int b = 1;
    13             int aa = 10;
    14             try
    15             {
    16                 int c = b / a;
    17                 return aa;
    18             }
    19             catch (DivideByZeroException e)
    20             {
    21             }
    22             finally
    23             {
    24                 aa = 20;
    25             }
    26             return 2;
    27         }
    28     }

    2.异常发生,return aa;不会执行,执行catch块之后再执行finally块。一直没有返回语句,会接着执行后续代码,遇到return 2;才返回到调用代码,最后得到返回值2。

    去掉return 2;会存在没有返回语句的支路而出现编译错误。这个支路就是异常发生时的情况。

  • 相关阅读:
    Java中数据类型的分类
    PL/SQL Developer工具
    Oracle数据库SQL语句的分类
    Oracle数据库控制台常用命令
    关于C#中泛型类型参数约束(where T : class)
    C#动态操作DataTable(新增行、列、查询行、列等)
    ADO.NET 全面整理
    区块链入门教程
    排序算法汇总
    常用SQL
  • 原文地址:https://www.cnblogs.com/niaomingjian/p/3764490.html
Copyright © 2011-2022 走看看