最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA拋出異常的三種形式詳解

 更新時間:2019年07月18日 14:18:22   作者:KyrieCao  
這篇文章主要介紹了JAVA拋出異常的三種形式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、系統(tǒng)自動拋出異常

當程序語句出現一些邏輯錯誤、主義錯誤或者類型轉換錯誤時,系統(tǒng)會自動拋出異常

例一

public static void main(String[] args) {
	int a = 5;
	int b = 0;
	System.out.println( a / b);
}

運行結果,系統(tǒng)會自動拋出ArithmeticException異常

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at io.renren.modules.sys.controller.SysUserController.main(SysUserController.java:154)

例二

public static void main(String[] args) {
	String str = "abc";
	System.out.println(Integer.parseInt(str));
}

運行結果,系統(tǒng)會拋出NumberFormatException異常

Exception in thread "main" java.lang.NumberFormatException: For input string: "abc"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at io.renren.modules.sys.controller.SysUserController.main(SysUserController.java:153)

二、throw

throw是語句拋出一個異常,一般是在代碼的內部,當程序出現某種邏輯錯誤時同程序主動拋出某種特定類型的異常

public static void main(String[] args) {
	String str = "NBA";
	if (str.equals("NBA")) {
		throw new NumberFormatException();
	} else {
		System.out.println(str);
	}
}

運行結果,系統(tǒng)會拋出NumberFormatException異常

Exception in thread "main" java.lang.NumberFormatException
	at io.renren.modules.sys.controller.SysUserController.main(SysUserController.java:154)

三、throws

throws是方法可能會拋出一個異常(用在聲明方法時,表示該方法可能要拋出異常)

public void function() throws Exception{......}

當某個方法可能會拋出某種異常時用于throws 聲明可能拋出的異常,然后交給上層調用它的方法程序處理

public static void testThrows() throws NumberFormatException {
	String str = "NBA";
	System.out.println(Integer.parseInt(str));
}

public static void main(String[] args) {
	try {
		testThrows();
	} catch (NumberFormatException e) {
		e.printStackTrace();
		System.out.println("非數直類型不能強制類型轉換");
	}
}

運行結果

java.lang.NumberFormatException: For input string: "NBA"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at io.renren.modules.sys.controller.SysUserController.testThrows(SysUserController.java:153)
	at io.renren.modules.sys.controller.SysUserController.main(SysUserController.java:158)
非數直類型不能強制類型轉換

throw與throws的比較

1、throws出現在方法函數頭,而throw出現在函數體。

2、throws表示出現異常的一種可能性,并不一定會發(fā)生這些異常,throw則是拋出了異常,執(zhí)行throw則一定拋出了某種異常對象。

3、兩者都是消極處理異常的方式(這里的消極并不是說這種方式不好),只是拋出或者可能拋出異常,但不會由函數去處理異常,真正的處理異常由函數的上層調用處理。

編程習慣

1、在寫程序時,對可能會出現異常的部分通常要用try{…}catch{…}去捕捉它并對它進行處理;

2、用try{…}catch{…}捕捉了異常之后一定要對在catch{…}中對其進行處理,那怕是最簡單的一句輸出語句,或棧輸入e.printStackTrace();

3、如果是捕捉IO輸入輸出流中的異常,一定要在try{…}catch{…}后加finally{…}把輸入輸出流關閉;

4、如果在函數體內用throw拋出了某種異常,最好要在函數名中加throws拋異常聲明,然后交給調用它的上層函數進行處理。

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

相關文章

  • java Array和Arrays的區(qū)別總結

    java Array和Arrays的區(qū)別總結

    在本篇內容里小編給大家整理的是一篇關于java Array和Arrays的區(qū)別總結內容,有需要的朋友們可以學習下。
    2021-03-03
  • Java中的@Repeatable注解使用詳解

    Java中的@Repeatable注解使用詳解

    這篇文章主要介紹了Java中的@Repeatable注解使用詳解,@Repeatable注解是java8為了解決同一個注解不能重復在同一類/方法/屬性上使用的問題,本文提供了解決思路和部分實現代碼,需要的朋友可以參考下
    2024-02-02
  • Java超詳細精講數據結構之bfs與雙端隊列

    Java超詳細精講數據結構之bfs與雙端隊列

    廣搜BFS的基本思想是: 首先訪問初始點v并將其標志為已經訪問。接著通過鄰接關系將鄰接點入隊。然后每訪問過一個頂點則出隊。按照順序,訪問每一個頂點的所有未被訪問過的頂點直到所有的頂點均被訪問過。廣度優(yōu)先遍歷類似與層次遍歷
    2022-07-07
  • 如何獲取Maven項目的版本號

    如何獲取Maven項目的版本號

    最近需要在項目中獲取項目的版本號,最笨的方法莫過于硬編碼一個版本號,當然之前我也是這么干的。不過閑下來的時候突發(fā)奇想Spring Boot項目中pom.xml定義的版本號(也就是project.version的值)能不能通過API獲得呢?于是利用摸魚的時間研究了這種無聊透頂的東西。
    2021-05-05
  • java字節(jié)流知識點總結

    java字節(jié)流知識點總結

    在本篇文章里小編給大家分享的是關于java字節(jié)流的相關知識點內容,有興趣的朋友們跟著學習參考下。
    2019-07-07
  • Spring中的@ConfigurationProperties詳解

    Spring中的@ConfigurationProperties詳解

    這篇文章主要介紹了Spring中的@ConfigurationProperties詳解,ConfigurationProperties注解主要用于將外部配置文件配置的屬性填充到這個Spring Bean實例中,需要的朋友可以參考下
    2023-09-09
  • Spring Security 在 Spring Boot 中的使用詳解【集中式】

    Spring Security 在 Spring Boot 中的使用詳解【集中式】

    這篇文章主要介紹了Spring Security 在 Spring Boot 中的使用【集中式】,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Java線程狀態(tài)及同步鎖的操作方法

    Java線程狀態(tài)及同步鎖的操作方法

    Java中的thread類自帶有線程的一些方法,這些方法可以讓線程睡眠,插隊,提高線程調度的優(yōu)先級等等,它們提供了改變線程狀態(tài)的操作手段,這篇文章主要介紹了Java線程狀態(tài)及同步鎖,需要的朋友可以參考下
    2021-11-11
  • java使用WatchService監(jiān)控文件夾示例

    java使用WatchService監(jiān)控文件夾示例

    本篇文章主要介紹了java使用WatchService監(jiān)控文件夾示例的資料,這里整理了詳細的代碼,有需要的小伙伴可以參考下。
    2017-02-02
  • Spring實戰(zhàn)之注入嵌套Bean操作示例

    Spring實戰(zhàn)之注入嵌套Bean操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之注入嵌套Bean操作,結合實例形式分析了嵌套Bean相關配置與使用操作技巧,需要的朋友可以參考下
    2019-11-11

最新評論

邹平县| 德庆县| 焉耆| 岐山县| 葵青区| 陵川县| 山东省| 龙里县| 汽车| 石河子市| 安达市| 黄浦区| 清河县| 星座| 拜城县| 吉隆县| 长沙市| 武乡县| 纳雍县| 高邮市| 五家渠市| 南漳县| 太仆寺旗| 婺源县| 南乐县| 闻喜县| 清丰县| 呼图壁县| 南阳市| 明水县| 新乡市| 米林县| 锡林浩特市| 静宁县| 交城县| 汉源县| 西林县| 紫阳县| 乐清市| 涪陵区| 江油市|