Today, I learned the try-catch-finally statement, which I thought was quite simple and easy to understand. I searched for a related type of question. As a result, confidence was poured cold water on. Mark the questions first and go out for some fresh air.
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:
After reading this, I was thinking,
1.Java exception handling mechanism , do I really understand?
2.Java exception handling, have I really mastered it?
3. How to deal with return in the catch body?
4.How to deal with return in finally body?
5. What should I do if return is encountered in catch and finally at the same time?
6. Is there another System.exit()? What to do if you encounter it? ?
7. Just knowing throws is not a complete solution, you need to continue to understand it in depth.
The above is the detailed content of Java exception catching explanation. For more information, please follow other related articles on the PHP Chinese website!