亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java拋出異常與自定義異常類應用示例

2024-07-14 08:43:37
字體:
來源:轉載
供稿:網友

本文實例講述了Java拋出異常與自定義異常類。分享給大家供大家參考,具體如下:

異常處理常用方法:

常用的異常處理方法有:

  • 一、try()catch() 語句
  • 二、throw / throws 語句
  • 三、自定義異常類

用途:

眾所周知,當程序運行過程中,如果遇到了錯誤(比如數組下標越界,空指針等)程序就會自動終止,但這種錯誤一般是偶然的,可能是用戶輸入不呵呵程序編寫者的意圖導致,而不是程序本身問題,這是我們要做的,是讓操作者知道發生了什么事情,而不是直截了當的結束程序,這時我們就用到了異常處理(語句發生錯誤時,只拋出異常,而不結束程序)。

這里一源碼為例 詳細介紹一下:

一、try()catch() 語句:

原理剖析:

將可能發生異常的語句放在 tr() 中,運行到try這一行時,如果無異常,則正常執行 try() 中語句,執行完 try() 內語句之后,程序自動跳過 catch() 語句,去執行 catch() 之后的語句。

反之,如果在執行 try() 內語句時,出現異常情況,則執行跳轉到catch()語句中,進行異常處理,一處處以之后不再回到try的()內,而是結束try()catch()內的所有操作,去運行后面的catch語句后面的語句。

舉個例子就明白了:

public class ClassText {    public static void main(String[] args) {        int textArray[] = new int[3];//用于測試數組越界異常的數組        int j;//用來使數組月結的下標        try {            for ( j = 0; j < (textArray.length + 1); j++) {//有+1可見 該測試一定越界                textArray[j] = (int) Math.random()*10 ;            }        } catch (Exception e) {            // TODO: handle exception            e.printStackTrace();        }        System.out.println("但是上面拋出異常后/n程序并沒有直接結束/n"                + "而是跳出try()catch()語句/n正常執行本條輸出語句");    }}

輸出如下:

可以看到,發生異常后依然執行了后面的輸出語句。

Java,拋出異常,自定義異常類

二、throw / throws 語句

很多出初學者一直把throw / throws 語句,看作兩種不同的異常處理方法,其實他們可以看作一個整體,throw語句可以看作異常的處理語句,而throws我們則可以將其類比為‘extends' 它的主要作用是聲明該方法(體內存在throw語句的方法,需要throws或者說我們可以看作需要‘繼承/鏈接',該異常類型的原型),舉個例子大家就明白了:

private static void textThrow_Throws(int radius) throws Exception {    if ( radius < 0 ) {//如果半徑小于0 則不符合常理進行異常處理        throw new Exception();    }}

這樣一來throw/throws 的用法就顯而易見了。

但是在寫完throw/throws 語句后,異常處理并沒有結束,因為這里只是簡單聲明了,我的這個成員方法中的可能會拋出異常,并沒有寫具體該如何處理這個異常,所以這是在主函數中,就要用try()catch()將他們包圍。描述好具體的處理異常方法:完整測試代碼如下:

public class ClassText {    public static void main(String[] args) {        int radius ;//定義一個叫做搬進的變量作為測試        radius = -5;//常理可知半徑使正數        try {            textThrow_Throws(radius);        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        System.out.println("程序正常結束~");    }    private static void textThrow_Throws(int radius) throws Exception {        if ( radius < 0 ) {//如果半徑小于0 則不符合常理進行異常處理            throw new Exception();        }    }}

我們再看看輸出范例:

Java,拋出異常,自定義異常類

三、自定義異常類

自定義異常類是逃不開,也是新手接觸最少的,其實它的基本使用方法還是很簡單的,自定義異常處理類,只包括兩部分:(1)、類的構造方法,構造方法的建立則非常簡單,其實只要繼承父類(比如 Exception類 )的構造方法即可。(2)、重寫toString()函數,這是最重要的一點,再toString函數中,描述具體發生了什么錯誤導致了異常的拋出。這樣一來用戶才知道究竟是發生了什么錯誤

這里結合throw/throws 舉個例子就很好明白了:

1.首先自定義一個異常類:

public class ArrayIndexException extends Exception{    public ArrayIndexException() {        // TODO Auto-generated constructor stub        super();    }    @Override    public String toString() {        // TODO Auto-generated method stub        return"程序發生了越界異常! 請檢查下標變化!";    }}

如上所示就是一個最基本的自定義異常類 ,它繼承了Exception 并且重寫了構造方法以及toString方法

2.現在我們嘗試再主函數中調用它

public class ClassText {    public static void main(String[] args) {        int textArray[] = new int[3];//用于測試數組越界異常的數組        try {            textSetArray(textArray);//調用下方數組賦值方法        } catch (ArrayIndexException e) {            // TODO: handle exception            e.printStackTrace();//如果發生了異常 則拋出自定義數組越界異常        }        System.out.println("go on !");        for(int j = 0 ; j < textArray.length ; j++ )            System.out.print(textArray[j] + "/t");//再越界之前的數成功賦值    }    private static void textSetArray(int[] textArray) throws ArrayIndexException{        for ( int j = 0; j < (textArray.length + 1); j++) {//有+1可見 該測試一定越界            textArray[j] = 5 ;//給數組原屬賦值        }    }}

如上所示,如果發生了異常,這才catch()語句中聲稱自定義的異常對象,并輸出具體信息:

Java,拋出異常,自定義異常類

java異常的處理大概就這些類型,如果有疑問可以給我留言我再完善。

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人巨大精品欧美一区二区三区| 欧美午夜片欧美片在线观看| 日韩电影免费在线观看中文字幕| 久久频这里精品99香蕉| 国产精品电影网| 欧美最顶级的aⅴ艳星| 欧美激情精品久久久久久黑人| 97欧美精品一区二区三区| 国内精品久久久久久| 国产午夜精品久久久| 日韩中文字幕国产精品| 欧美日韩成人网| 亚州精品天堂中文字幕| 久久久久久久久久久91| 国产激情久久久久| 国产精品 欧美在线| 在线精品国产成人综合| 日韩欧美亚洲成人| 2025国产精品视频| 国产精品麻豆va在线播放| 最新91在线视频| 亚洲精品之草原avav久久| 国产剧情久久久久久| 欧美电影《睫毛膏》| 91理论片午午论夜理片久久| 国产精品扒开腿做爽爽爽男男| 欧美成人激情视频免费观看| 亚洲va国产va天堂va久久| 日韩成人激情在线| 久久亚洲影音av资源网| 8090成年在线看片午夜| 中文字幕在线观看亚洲| 亚洲第一在线视频| 国产精品精品视频| 国产丝袜一区二区三区| 精品视频在线播放| 国产视频久久网| 国产精品亚发布| 国产亚洲精品久久久优势| 国产欧美一区二区三区久久人妖| 日韩欧美在线网址| 一本色道久久88综合日韩精品| 欧洲中文字幕国产精品| 国产成人福利网站| 亚洲国产精品免费| 欧美另类精品xxxx孕妇| 亚洲韩国日本中文字幕| 欧美国产日韩二区| 欧美日韩中文字幕在线视频| 国产丝袜一区二区| 国产91热爆ts人妖在线| 成人精品一区二区三区电影黑人| 亚洲精品国产精品国产自| 欧美香蕉大胸在线视频观看| 国产成人综合亚洲| 国产亚洲精品久久久久久| 国产极品精品在线观看| 午夜精品在线观看| 亚洲精品日韩激情在线电影| 久久97精品久久久久久久不卡| 久久久国产在线视频| 久久成人综合视频| 成人性生交大片免费观看嘿嘿视频| www国产精品视频| 日韩av在线网| 全色精品综合影院| 日本一区二三区好的精华液| 久久国产精品首页| 亚洲国产精品电影在线观看| 成人中文字幕+乱码+中文字幕| 亚洲精品91美女久久久久久久| 日韩视频在线观看免费| 青青在线视频一区二区三区| 亚洲欧美中文字幕在线一区| 欧美日韩国产一区二区| 欧美色欧美亚洲高清在线视频| 亚洲女人被黑人巨大进入al| 亚洲欧洲av一区二区| 国产精品中文字幕在线| 欧美精品18videos性欧| 国产区精品视频| 91tv亚洲精品香蕉国产一区7ujn| 97视频在线观看免费| 欧美日本在线视频中文字字幕| 92国产精品久久久久首页| 亚洲人成电影在线观看天堂色| 91精品国产高清自在线| 国产精品嫩草影院久久久| 国产在线播放不卡| 日韩欧美在线播放| 欧美夜福利tv在线| 亚洲第一精品久久忘忧草社区| 韩国国内大量揄拍精品视频| 91精品综合久久久久久五月天| 亚洲天堂2020| 欧美理论在线观看| 欧美另类交人妖| www.99久久热国产日韩欧美.com| 激情成人中文字幕| 中文字幕亚洲无线码a| 亚洲欧洲日产国码av系列天堂| 国产欧美日韩精品在线观看| 欧美激情欧美激情在线五月| 久久久久久国产精品| 久久人91精品久久久久久不卡| 中文字幕亚洲专区| 国产欧美日韩中文字幕在线| 亚洲国产毛片完整版| 国产欧美日韩中文字幕| 亚洲3p在线观看| 九九综合九九综合| 精品视频久久久久久久| 在线一区二区日韩| 两个人的视频www国产精品| 久久国产精品久久久久久久久久| 久久99精品国产99久久6尤物| 亚洲最大福利视频网站| 亚洲精品在线看| 91国自产精品中文字幕亚洲| 岛国av一区二区三区| 久久久久久久影视| 国产精品情侣自拍| 精品久久久久久久久久久久久| 久久久久久久久国产精品| 日韩视频免费观看| 激情成人在线视频| 久久久欧美精品| 国产精品视频地址| 亚洲人av在线影院| 欧美中文字幕第一页| 国产日韩欧美在线观看| 精品欧美国产一区二区三区| 91精品久久久久久久久不口人| 丝袜亚洲另类欧美重口| 日韩精品在线播放| 中文日韩电影网站| 亚洲午夜av久久乱码| 欧美日韩在线一区| 国产精品久久一区主播| 欧美电影在线免费观看网站| 国产人妖伪娘一区91| 丝袜一区二区三区| 最近2019年日本中文免费字幕| 欧美一级视频一区二区| 日韩美女免费视频| 九九视频这里只有精品| 日韩成人av一区| 性亚洲最疯狂xxxx高清| 国产精品一区二区三区成人| 欧美激情久久久久| 日韩成人在线视频| 欧美精品日韩三级| 亚洲精品国精品久久99热一| 这里精品视频免费| 日韩av高清不卡| 国产精品一久久香蕉国产线看观看| 九九热这里只有精品6| 国产丝袜高跟一区| 午夜精品福利视频| www亚洲精品| 欧美日韩国产限制| 欧美日韩在线视频一区二区| 国产精品电影久久久久电影网| 欧美疯狂做受xxxx高潮|