9、java中的异常处理机制
生活随笔
收集整理的這篇文章主要介紹了
9、java中的异常处理机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????? Java中的異常(Throwable)分為兩類:異常Execption和錯誤Error。
????? Error,也就是錯誤,這個是不可避免的,出現的問題使得應用停止,例如:服務器損壞、內存溢出等。在java中所有的錯誤都繼承自Error類,這個是不可控的。
????? Exection,也就是異常,是可控的,異常又分為編譯時異常和運行時異常,編譯時異常是由編碼語法錯誤導致的,在編譯時期就可以看出來,即使進行修改。代碼如下:
public class ErrorTest {public static void main(String[] args) {String s = 5;//這樣就會直接報錯,開發者可以直接看到} }運行時異常是由業務邏輯導致的,只有到了運行時才可以看出來。代碼如下:
public class ErrorTest {public static void main(String[] args) {int i = 5;int j = 4;add(i, j);//5+4=1System.out.println(i / 0);//這里違反了除法的基本邏輯,運行時也會報錯}public static void add(int i , int j) {//這里就是編譯時異常,有邏輯不清造成System.out.println("i+j="+(i - j));} }?????? 因為當程序出現異常時便不再繼續往下執行代碼,所以異常需要處理,這里的異常值得是Exection,如果程序發生Error,應用會直接停止,而不是不繼續往下執行代碼,錯誤是控制不了的,只能重啟應用,所以錯誤一定要避免。Java中解決異常的方式有拋出異常和捕獲處理異常。所謂拋出異常就是指當程序遇到異常時,不去處理異常,而是將異常拋出去,保證程序能繼續往下執行,捕獲異常則是指程序遇到異常時,將異常的錯誤信息進行處理,保證程序繼續執行,代碼如下:
/*** 異常的處理方式有兩種:* 一是使用throws或者throw:只是將錯誤拋出,不做任何處理* 可以在代碼中主動拋出錯誤,使用thorw關鍵字,格式為throw new Exception();* 可以在方法上、類上拋出錯誤,使用thorws關鍵字,格式throws Exception* 而是使用try..catch..finally:捕獲錯誤,處理錯誤* 格式如下:* try{* 可能發生錯誤的代碼;* }catch(異常類){* 拋出異常信息;//可以有多個catch塊* }finally{* finally中的代碼不管怎么樣都會執行;* }* @author chaizepeng**/ public class ErrorTest {public static void main(String[] args) {int i = 5;int j = 0;//add方法拋出了異常,在這里捕獲異常并作處理try {add(i,j);} catch (ArithmeticException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}finally {System.out.println("做一下容災處理。。。");}}//在這里不處理錯誤,將錯誤拋出,誰調用這個方法,出錯的時候再做處理public static void add(int i , int j) throws Exception{System.out.println(i/j);throw new Exception();} }????? 開發者可以自定義異常,就是繼承自Execption類,然后自定義異常即可,代碼如下:
public class NoZeroExection extends Exception{//繼承自Exception類public NoZeroExection() {//用構造方法來描述錯誤信息System.out.println("不可出現數字0");}}class Test{public static void main(String[] args) {int flag = 0;try {//捕獲異常myExcetion(flag);} catch (NoZeroExection e) {System.out.println("出現錯誤:");e.printStackTrace();}}public static void myExcetion(int flag) throws NoZeroExection{//拋出異常if (flag == 0) {throw new NoZeroExection();}System.out.println("正常執行。。。");} }常見的異常:
| 空指針異常 | NullpoiontException |
| 數組下標越界 | ArrayIndexOutOfBoundsException |
| 參數錯誤 | ArithmeticException |
| IO異常 | IOException |
| 類不存在異常 | ClassNotFoundException |
| 方法不存在異常 | NoSuchMethodException |
| sql異常 | SQLException |
| 。。。。 | ? |
?
?
總結
以上是生活随笔為你收集整理的9、java中的异常处理机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地龙养殖技巧 地龙如何养殖
- 下一篇: 10、java中文件的抽象表示