zoukankan      html  css  js  c++  java
  • Java异常捕获之一道try-catch-finally语句题

    今天,学习了try-catch-finally语句,本来觉得蛮简单、易懂的。搜了一道相关类型的题。结果信心被泼了盆冷水。先把题Mark一下,出去透透风。

     1 public class TestEx {
     2     private int c;
     3 
     4     public TestEx() {
     5     }
     6 
     7     @SuppressWarnings("finally")
     8     boolean testEx() throws Exception {
     9         boolean ret = true;
    10         try {
    11             ret = testEx1();
    12         } catch (Exception e) {
    13             System.out.println("testEx, catch exception");
    14             ret = false;
    15             throw e;
    16         } finally {
    17             System.out.println("testEx, finally; return value=" + ret);
    18             return ret;
    19         }
    20     }
    21 
    22     @SuppressWarnings("finally")
    23     boolean testEx1() throws Exception {
    24         boolean ret = true;
    25         try {
    26             ret = testEx2();
    27             if (!ret) {
    28                 return false;
    29             }
    30             System.out.println("testEx1, at the end of try");
    31             return ret;
    32         } catch (Exception e) {
    33             System.out.println("testEx1, catch exception");
    34             ret = false;
    35             throw e;
    36         } finally {
    37             System.out.println("testEx1, finally; return value=" + ret);
    38             return ret;
    39         }
    40     }
    41 
    42     @SuppressWarnings("finally")
    43     boolean testEx2() throws Exception {
    44         boolean ret = true;
    45         try {
    46             int b = 12;
    47             for (int i = 2; i >= -2; i--) {
    48                 setC(b / i);
    49                 System.out.println("i=" + i);
    50             }
    51             return true;
    52         } catch (Exception e) {
    53             System.out.println("testEx2, catch exception");
    54             ret = false;
    55             throw e;
    56         } finally {
    57             System.out.println("testEx2, finally; return value=" + ret);
    58             return ret;
    59         }
    60     }
    61 
    62     public static void main(String[] args) {
    63         TestEx testException1 = new TestEx();
    64         try {
    65             testException1.testEx();
    66         } catch (Exception e) {
    67             e.printStackTrace();
    68         }
    69     }
    70 
    71     public int getC() {
    72         return c;
    73     }
    74 
    75     public void setC(int c) {
    76         this.c = c;
    77     }
    78 }

    Output:

    看完之后我就在想,

    1.Java异常处理机制,我真的理解了吗?

    2.Java异常处理,我真的掌握了吗?

    3.catch体里遇到return 是怎么处理?

    4.finally 体里有return怎么处理?

    5. catch 和 finally 体里同时遇上 return 怎么办?

    6.是不是还有个System.exit()?遇到它又咋办??

    7.仅仅知道throws不是完全之策啊,还要继续深入理解啊。2017-06-1918:21:08

  • 相关阅读:
    在python3.7下怎么安装matplotlib与numpy
    kNN(从文本文件中解析数据)
    k-近邻算法(kNN)笔记
    第二章--k-近邻算法(kNN)
    C++学习笔记一 —— 两个类文件互相引用的处理情况
    (转) C++中基类和派生类之间的同名函数的重载问题
    初试 Matlab 之去除水印
    (转) linux之sort用法
    vim 简单配置
    hdu 5358 First One
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/7049920.html
Copyright © 2011-2022 走看看