日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

9、java中的异常处理机制

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中的异常处理机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。