成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

教妹學 Java :Throw 和 Throws

開發 后端
“throw 關鍵字,用于主動地拋出異常;正常情況下,當除數為 0 的時候,程序會主動拋出 ArithmeticException;但如果我們想要除數為 1 的時候也拋出 ArithmeticException,就可以使用 throw 關鍵字主動地拋出異常。”我說。

[[410259]]

 “二哥,你能告訴我 throw 和 throws 兩個關鍵字的區別嗎?”三妹問。

“throw 關鍵字,用于主動地拋出異常;正常情況下,當除數為 0 的時候,程序會主動拋出 ArithmeticException;但如果我們想要除數為 1 的時候也拋出 ArithmeticException,就可以使用 throw 關鍵字主動地拋出異常。”我說。

  1. throw new exception_class("error message"); 

語法也非常簡單,throw 關鍵字后跟上 new 關鍵字,以及異常的類型還有參數即可。

舉個例子。

  1. public class ThrowDemo { 
  2.     static void checkEligibilty(int stuage){ 
  3.         if(stuage<18) { 
  4.             throw new ArithmeticException("年紀未滿 18 歲,禁止觀影"); 
  5.         } else { 
  6.             System.out.println("請認真觀影!!"); 
  7.         } 
  8.     } 
  9.  
  10.     public static void main(String args[]){ 
  11.         checkEligibilty(10); 
  12.         System.out.println("愉快地周末.."); 
  13.     } 

這段代碼在運行的時候就會拋出以下錯誤:

  1. Exception in thread "main" java.lang.ArithmeticException: 年紀未滿 18 歲,禁止觀影 
  2.  at com.itwanger.s43.ThrowDemo.checkEligibilty(ThrowDemo.java:9) 
  3.  at com.itwanger.s43.ThrowDemo.main(ThrowDemo.java:16) 

“throws 關鍵字的作用就和 throw 完全不同。”我說,“異常處理機制這小節中講了 checked exception 和 unchecked exception,也就是檢查型異常和非檢查型異常;對于檢查型異常來說,如果你沒有做處理,編譯器就會提示你。”

Class.forName() 方法在執行的時候可能會遇到 java.lang.ClassNotFoundException 異常,一個檢查型異常,如果沒有做處理,IDEA 就會提示你,要么在方法簽名上聲明,要么放在 try-catch 中。

“那什么情況下使用 throws 而不是 try-catch 呢?”三妹問。

“假設現在有這么一個方法 myMethod(),可能會出現 ArithmeticException 異常,也可能會出現 NullPointerException。這種情況下,可以使用 try-catch 來處理。”我回答。

  1. public void myMethod() { 
  2.     try { 
  3.         // 可能拋出異常  
  4.     } catch (ArithmeticException e) { 
  5.         // 算術異常 
  6.     } catch (NullPointerException e) { 
  7.         // 空指針異常 
  8.     } 

“但假設有好幾個類似 myMethod() 的方法,如果為每個方法都加上 try-catch,就會顯得非常繁瑣。代碼就會變得又臭又長,可讀性就差了。”我繼續說。

“一個解決辦法就是,使用 throws 關鍵字,在方法簽名上聲明可能會拋出的異常,然后在調用該方法的地方使用 try-catch 進行處理。”

  1. public static void main(String args[]){ 
  2.     try { 
  3.         myMethod1(); 
  4.     } catch (ArithmeticException e) { 
  5.         // 算術異常 
  6.     } catch (NullPointerException e) { 
  7.         // 空指針異常 
  8.     } 
  9. public static void myMethod1() throws ArithmeticException, NullPointerException{ 
  10.     // 方法簽名上聲明異常 

“好了,我來總結下 throw 和 throws 的區別,三妹,你記一下。”

1)throws 關鍵字用于聲明異常,它的作用和 try-catch 相似;而 throw 關鍵字用于顯式的拋出異常。

2)throws 關鍵字后面跟的是異常的名字;而 throw 關鍵字后面跟的是異常的對象。

示例。

  1. throws ArithmeticException; 
  1. throw new ArithmeticException("算術異常"); 

3)throws 關鍵字出現在方法簽名上,而 throw 關鍵字出現在方法體里。

4)throws 關鍵字在聲明異常的時候可以跟多個,用逗號隔開;而 throw 關鍵字每次只能拋出一個異常。

“三妹,這下子清楚了吧?”我抬抬頭,看了看三妹說。

“好的,二哥,這下徹底記住了,你真棒!”

本文轉載自微信公眾號「沉默王二」,可以通過以下二維碼關注。轉載本文請聯系沉默王二公眾號。

 

責任編輯:武曉燕 來源: 沉默王二
相關推薦

2021-06-06 20:56:48

Java內存 intern

2021-05-10 11:38:07

Java數組IDEA

2020-11-18 09:44:49

Java命名約定

2020-10-26 09:36:45

Java變量數據

2021-06-11 18:08:00

Java字符串拼接

2021-07-26 17:22:02

Java

2021-07-03 17:53:52

Java異常處理機制

2020-10-29 10:28:31

Java數據類型

2021-07-30 09:32:55

JavaEquals

2020-11-13 10:29:37

流程控制語句

2020-12-09 05:19:35

static關鍵字Java

2022-02-16 08:26:18

Go并發信號量

2018-03-06 10:46:42

代碼Python買水果

2020-11-20 09:36:43

Java對象

2017-06-02 10:25:26

Java異常處理

2016-05-12 09:59:08

2010-09-13 13:25:44

sql server外

2015-03-16 16:16:15

JavaJava異常處理Java最佳實踐

2011-09-16 11:08:54

Emacstwitter微博

2013-06-27 09:42:47

編程新手
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 日日夜精品视频 | 久久久久国产成人精品亚洲午夜 | 久久国产精品99久久久久久丝袜 | 国产免费一区 | 精品日韩一区二区三区av动图 | 久久久亚洲一区 | av一级在线观看 | 欧美a在线 | 国产精品久久欧美久久一区 | 精品国产一区二区三区久久狼黑人 | 欧美日日| 欧美特级黄色 | 羞羞的视频在线 | 精品欧美一区二区三区久久久 | 91精品国产91久久久久久丝袜 | 在线观看国产三级 | 国产在线二区 | 欧美 日韩 亚洲91麻豆精品 | 久草免费在线视频 | 91精品国产91久久久久久最新 | 视频在线亚洲 | 国产高清免费 | 天天操天天舔 | 毛片99 | 岛国在线免费观看 | 成年人免费在线视频 | 国外成人在线视频网站 | 亚洲国产精品99久久久久久久久 | 黄色成人免费在线观看 | 不用播放器看的av | 日本又色又爽又黄又高潮 | 午夜精品久久久久久久久久久久 | 毛片网站在线观看 | 国产精品国产馆在线真实露脸 | 亚洲免费精品 | 欧美在线a| 欧美激情在线播放 | 97视频成人 | 欧美日韩综合 | 国产ts人妖系列高潮 |