這篇文章將為大家詳細講解有關(guān)Java中throw和throws關(guān)鍵字有什么區(qū)別,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)面向各種領(lǐng)域:酒樓設計等成都網(wǎng)站設計、營銷型網(wǎng)站建設解決方案、網(wǎng)站設計等建站排名服務。拋出異常有三種形式
throw throws 系統(tǒng)自動拋異常
一、系統(tǒng)自動拋異常
當程序語句出現(xiàn)一些邏輯錯誤、主義錯誤或類型轉(zhuǎn)換錯誤時,系統(tǒng)會自動拋出異常:(舉個栗子)
public static void main(String[] args) { int a = 5, b =0; System.out.println(5/b); // 此處系統(tǒng)會自動拋出ArithmeticException異常 //function(); }
二、throw
throw是語句拋出一個異常,一般是在代碼塊的內(nèi)部,當程序出現(xiàn)某種邏輯錯誤時由程序員主動拋出某種特定類型的異常
public static void main(String[] args) { String s = "abc"; if(s.equals("abc")) { throw new NumberFormatException(); } else { System.out.println(s); } //function(); }
運行時,系統(tǒng)會拋出如下異常:
Exception in thread "main" java.lang.NumberFormatException at......
三、throws
當某個方法可能會拋出某種異常時用于throws 聲明可能拋出的異常,然后交給上層調(diào)用它的方法程序處理
public class testThrows(){public static void function() throws NumberFormatException { String s = "abc"; System.out.println(Double.parseDouble(s)); } public static void main(String[] args) { try { function(); } catch (NumberFormatException e) { System.err.println("非數(shù)據(jù)類型不能強制類型轉(zhuǎn)換。"); //e.printStackTrace(); } }
運行結(jié)果如下:
非數(shù)據(jù)類型不能強制類型轉(zhuǎn)換
四、throw與throws的比較
throws出現(xiàn)在方法函數(shù)頭;而throw出現(xiàn)在函數(shù)體。 throws表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這些異常;throw則是拋出了異常,執(zhí)行throw則一定拋出了某種異常對象。 兩者都是消極處理異常的方式(這里的消極并不是說這種方式不好),只是拋出或者可能拋出異常,但是不會由函數(shù)去處理異常,真正的處理異常由函數(shù)的上層調(diào)用處理。
五、編程習慣:
在寫程序時,對可能會出現(xiàn)異常的部分通常要用try{…}catch{…}去捕捉它并對它進行處理; 用try{…}catch{…}捕捉了異常之后一定要對在catch{…}中對其進行處理,那怕是最簡單的一句輸出語句,或棧輸入e.printStackTrace();用try{…}catch{…}捕捉了異常之后一定要對在catch{…}中對其進行處理,那怕是最簡單的一句輸出語句,或棧輸入e.printStackTrace(); 如果是捕捉IO輸入輸出流中的異常,一定要在try{…}catch{…}后加finally{…}把輸入輸出流關(guān)閉;如果是捕捉IO輸入輸出流中的異常,一定要在try{…}catch{…}后加finally{…}把輸入輸出流關(guān)閉; 如果在函數(shù)體內(nèi)用throw拋出了某種異常,好要在函數(shù)名中加throws拋異常聲明,然后交給調(diào)用它的上層函數(shù)進行處理。如果在函數(shù)體內(nèi)用throw拋出了某種異常,好要在函數(shù)名中加throws拋異常聲明,然后交給調(diào)用它的上層函數(shù)進行處理。
關(guān)于Java中throw和throws關(guān)鍵字有什么區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。