java trrows处理_java 19 -2 异常以及tr...catch()的方法处理异常
1 /*
2 異常:程序出現了不正常的情況。3
4 舉例:今天天氣很好,班長出去旅游。騎著自行車,去山里面呼吸新鮮空氣。5 Error:6 問題1:山路塌陷了,班長及時停住了,但是過不去了。嚴重的問題。(Error,編譯處理不了的)7 Exception:8 問題2:班長出門推自行車,發現氣沒了,把氣吹起來。出發前就應該檢查的問題。(非RuntimeException的異常,必須處理)9 問題3:班長騎著車在山路上愜意的行駛著,山路兩邊是有小石子的,中間是平坦的水泥路。(RuntimeException 需要修正代碼)10 一直在平坦的水泥路上行駛是沒有任何問題的,但是呢,他偏偏喜歡騎到小石子上,結果爆胎了。旅游的過程中出現的問題。11 no zuo no die。12
13 程序的異常:Throwable14 嚴重問題:Error 是程序本身無法恢復的嚴重錯誤,無法處理15 問題:Exception 表示可以被程序捕獲并處理的異常錯誤16 編譯期問題:不是RuntimeException的異常 必須進行處理的,因為你不處理,編譯就不能通過。17 運行期問題: RuntimeException 這個問題出現肯定是我們的代碼不夠嚴謹,需要修正代碼的。18
19 如何程序出現了問題,我們沒有做任何處理,最終jvm會做出默認的處理。20 把異常的名稱,原因及出現的問題等信息輸出在控制臺。21 同時會結束程序。22
23 我們自己如何處理異常呢?24 A:try...catch...finally25 B:throws 拋出26
27 try...catch...finally的處理格式:28 try {29 可能出現問題的代碼;30 }catch(異常名 變量) {31 針對問題的處理;32 }finally {33 釋放資源;34 }35
36 變形格式:37 try {38 可能出現問題的代碼;39 }catch(異常名 變量) {40 針對問題的處理;41 }42
43 注意:44 A:try里面的代碼越少越好(因為jvm會針對try里面的代碼開辟另外的空間,所以越少越好,省空間)45 B:catch里面必須有內容,哪怕是給出一個簡單的提示(不然就不是處理問題,而是隱藏問題了)46
47 A:一個異常48B:二個異常的處理49 a:每一個寫一個try...catch50 b:寫一個try,多個catch51 try{52 ...53 }catch(異常類名 變量名) {54 ...55 }56 catch(異常類名 變量名) {57 ...58 }59 ...60
61 注意事項:62 1:能明確的盡量明確,不要用大的來處理。63 2:平級關系的異常誰前誰后無所謂,如果出現了子父關系,父必須在后面。64
65 注意:66 一旦try里面出了問題,就會在這里把問題給拋出去,然后和catch里面的問題進行匹配,67 一旦有匹配的,就執行catch里面的處理,然后結束了try...catch68 繼續執行后面的語句。69 */
70
71 public classExceptionDemo2 {72 public static voidmain(String[] args) {73 //method1();74
75 //method2();76
77 //method3();
78
79 method4();80 }81
82 public static voidmethod4() {83 int a = 10;84 int b = 0;85 int[] arr = { 1, 2, 3};86
87 //爺爺在最后
88 try{89 System.out.println(a /b);90 System.out.println(arr[3]);91 System.out.println("這里出現了一個異常,你不太清楚是誰,該怎么辦呢?");92 } catch(ArithmeticException e) {93 System.out.println("除數不能為0");94 } catch(ArrayIndexOutOfBoundsException e) {95 System.out.println("你訪問了不該的訪問的索引");96 } catch(Exception e) {97 System.out.println("出問題了");98 }99
100 //爺爺在前面是不可以的101 //try {102 //System.out.println(a / b);103 //System.out.println(arr[3]);104 //System.out.println("這里出現了一個異常,你不太清楚是誰,該怎么辦呢?");105 //} catch (Exception e) {106 //System.out.println("出問題了");107 //} catch (ArithmeticException e) {108 //System.out.println("除數不能為0");109 //} catch (ArrayIndexOutOfBoundsException e) {110 //System.out.println("你訪問了不該的訪問的索引");111 //}
112
113 System.out.println("over");114 }115
116 //兩個異常的處理
117 public static voidmethod3() {118 int a = 10;119 int b = 0;120 int[] arr = { 1, 2, 3};121
122 try{123 System.out.println(arr[3]);124 System.out.println(a /b);125 //System.out.println(arr[3]);
126 } catch(ArithmeticException e) {127 System.out.println("除數不能為0");128 } catch(ArrayIndexOutOfBoundsException e) {129 System.out.println("你訪問了不該的訪問的索引");130 }131
132 System.out.println("over");133 }134
135 //兩個異常
136 public static voidmethod2() {137 int a = 10;138 int b = 0;139 try{140 System.out.println(a /b);141 } catch(ArithmeticException e) {142 System.out.println("除數不能為0");143 }144
145 int[] arr = { 1, 2, 3};146 try{147 System.out.println(arr[3]);148 } catch(ArrayIndexOutOfBoundsException e) {149 System.out.println("你訪問了不該的訪問的索引");150 }151
152 System.out.println("over");153 }154
155 //一個異常
156 public static voidmethod1() {157 //第一階段
158 int a = 10;159 //int b = 2;
160 int b = 0;161
162 try{163 System.out.println(a /b);164 } catch(ArithmeticException ae) {165 System.out.println("除數不能為0");166 }167
168 //第二階段
169 System.out.println("over");170 }171 }
總結
以上是生活随笔為你收集整理的java trrows处理_java 19 -2 异常以及tr...catch()的方法处理异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java跳转语句包含goto_Java
- 下一篇: java rabbitmq 绑定_Rab