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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

java 自定义异常的回顾

發(fā)布時間:2024/8/26 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 java 自定义异常的回顾 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、異常的分類:

1.編譯時異常:編譯時被檢測的異常 (throw后,方法有能力處理就try-catch處理,沒能力處理就必須throws)。編譯不通過,檢查語法(其實就是throw和throws的配套使用)。
2.運行時異常:編譯時不被檢查的異常(運行時異常。RuntimeException及其子類)。編譯通過。

各自的特點:

>1.編譯時異常 : 一旦 用throw 拋出異常,如果當前方法 可處理異常,那么直接在該方法內(nèi)用try-catch 去處理。如果當前方法不具備處理該異常的能力,那么就必須在 參數(shù)列表后方法體前用 throws 聲明 異常 所屬類,交給調(diào)用該方法的 調(diào)用者(方法) 去處理 。
>2.運行時異常,不需要用throws 聲明拋出 異常對象所屬類,也可以不用throw 拋出異常對象或異常引用。對于調(diào)用該方法,也不需要放于 try-catch 代碼塊中。(為什么 ? 如果你捕獲它,就會冒這么一個風險:程序代碼錯誤被掩蓋在運行中無法察覺);

加深理解:

從邏輯的角度來看, checked 異常 和 RuntimeException 有著不同的使用目的,檢查性異常 用來指示 一種調(diào)用方能夠直接處理的異常情況(例如: 用戶輸入錯誤,程序可以直接捕獲并處理,提示用戶輸入錯誤), 而RuntimeException 是用來指 調(diào)用方 本身無法 處理或回復 的程序錯誤(例如,你封裝個庫給別人用,當別人調(diào)用你庫中某個方法是,需要傳入某些參數(shù),如果用戶傳入的參數(shù)不合法,你自己沒辦法處理,那么此刻你拋出的就應該是運行時異常;(構(gòu)造方法也是可以拋出異常的,而且,拋出異常的類型通常是運行時異常))。

二、自定義異常

前面所講的異常,都是系統(tǒng)自帶的,系統(tǒng)自己處理,但是很多時候項目會出現(xiàn)特有問題,而這些問題并未被java所描述并封裝成對象,所以對于這些特有的問題可以按照java的對問題封裝的思想,將特有的問題進行自定義異常封裝。在Java中要想創(chuàng)建自定義異常,需要繼承Throwable或者他的子類Exception

三、異常的拋出

1、定義 : 一個方法不處理這個異常,而是調(diào)用層次向上傳遞,誰調(diào)用這個方法,這個異常就由誰來處理。
2、throw : 將產(chǎn)生的異常拋出(強調(diào)的是動作),拋出的既可以是異常的引用,也可以是異常對象。(位置: 方法體內(nèi)
3、throws : 如果一個方法可能會出現(xiàn)異常,但沒有能力處理這種異常,可以在方法聲明處用throws子句來聲明拋出異常。用它修飾的方法向調(diào)用者表明該方法可能會拋出異常(可以是一種類型,也可以是多種類型,用逗號隔開)(位置: 寫在方法名 或方法名列表之后 ,在方法體之前。)

注意 : 調(diào)用可能會拋出異常的方法,必須添加try-catch代碼塊嘗試去捕獲異常 或者 添加throws 聲明 來將異常 拋出給更上一層的調(diào)用者進行處理,這里需要注意一個細節(jié):新的異常包含原始異常的所有信息,根據(jù)這個我們可以去追溯最初異常發(fā)生的位置;

四、throw 和throws 關(guān)鍵字的區(qū)別

1、寫法上 : throw 在方法體內(nèi)使用,throws 函數(shù)名后或者參數(shù)列表后方法體前 ;
2、意義 : throw 強調(diào)動作,而throws 表示一種傾向、可能但不一定實際發(fā)生 ;
3、throws 后面跟的是異常類,可以一個,可以多個,多個用逗號隔開。throw 后跟的是異常對象,或者異常對象的引用。
4、throws 用戶拋出異常,當在當前方法中拋出異常后,當前方法執(zhí)行結(jié)束(throws 后,如果有finally語句的話,會執(zhí)行到finally語句后再結(jié)束。)。可以理解成return一樣。

五、未完待續(xù)。。。。

參考地址1:http://blog.csdn.net/qq_18505715/article/details/73196421

參考地址2:http://blog.csdn.net/mccand1234/article/details/51579425

參考地址3:http://www.cnblogs.com/dolphin0520/p/3769804.html

總結(jié)

以上是生活随笔為你收集整理的java 自定义异常的回顾的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。