亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

簡單了解Java關鍵字throw和throws的區(qū)別

 更新時間:2019年11月29日 15:07:06   作者:xsj_blog  
這篇文章主要介紹了簡單了解Java關鍵字throw和throws的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了簡單了解Java關鍵字throw和throws的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

拋出異常有三種形式

  • 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{…}把輸入輸出流關閉;如果是捕捉IO輸入輸出流中的異常,一定要在try{…}catch{…}后加finally{…}把輸入輸出流關閉;
  • 如果在函數(shù)體內(nèi)用throw拋出了某種異常,最好要在函數(shù)名中加throws拋異常聲明,然后交給調(diào)用它的上層函數(shù)進行處理。如果在函數(shù)體內(nèi)用throw拋出了某種異常,最好要在函數(shù)名中加throws拋異常聲明,然后交給調(diào)用它的上層函數(shù)進行處理。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 基于springboot 長輪詢的實現(xiàn)操作

    基于springboot 長輪詢的實現(xiàn)操作

    這篇文章主要介紹了基于springboot 長輪詢的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • java調(diào)用FFmpeg實現(xiàn)視屏壓縮功能的詳細步驟

    java調(diào)用FFmpeg實現(xiàn)視屏壓縮功能的詳細步驟

    這篇文章主要介紹了java調(diào)用FFmpeg實現(xiàn)視屏壓縮功能,本文簡單的展示了java調(diào)用FFmpeg命令實現(xiàn)視屏的壓縮的詳細步驟,需要的朋友可以參考下
    2021-09-09
  • Springboot指定掃描路徑的實現(xiàn)示例

    Springboot指定掃描路徑的實現(xiàn)示例

    本文主要介紹了Springboot指定掃描路徑的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • Java創(chuàng)建student類詳細代碼例子

    Java創(chuàng)建student類詳細代碼例子

    這篇文章主要給大家介紹了關于Java創(chuàng)建student類的相關資料,學生類(Student)是一種面向?qū)ο蟮木幊谈拍?其主要用于描述學生的屬性和行為,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Java 詳解異常的處理機制

    Java 詳解異常的處理機制

    異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的。比如你的代碼少一個分號,那運行出來結(jié)果是提示是錯誤 java.lang.Error;如果你用System.out.println(11/0),那你是因為用0做了除數(shù),會拋出 java.lang.ArithmeticException 的異常
    2021-11-11
  • Spring?Boot?整合?Fisco?Bcos部署、調(diào)用區(qū)塊鏈合約的案例

    Spring?Boot?整合?Fisco?Bcos部署、調(diào)用區(qū)塊鏈合約的案例

    本篇文章介紹?Spring?Boot?整合?Fisco?Bcos?的相關技術,最最重要的技術點,部署、調(diào)用區(qū)塊鏈合約的工程案例,本文通過流程分析給大家介紹的非常詳細,需要的朋友參考下吧
    2022-01-01
  • 初學者易上手的SSH-struts2 01環(huán)境搭建(圖文教程)

    初學者易上手的SSH-struts2 01環(huán)境搭建(圖文教程)

    下面小編就為大家?guī)硪黄鯇W者易上手的SSH-struts2 01環(huán)境搭建(圖文教程)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • java實現(xiàn)砸金蛋抽獎功能

    java實現(xiàn)砸金蛋抽獎功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)砸金蛋抽獎功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 快速了解Java中NIO核心組件

    快速了解Java中NIO核心組件

    這篇文章主要介紹了快速了解Java中NIO核心組件,涉及相關介紹及完整實例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Java常用字節(jié)流和字符流實例匯總

    Java常用字節(jié)流和字符流實例匯總

    這篇文章主要介紹了Java常用字節(jié)流和字符流實例匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論