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

Java學習筆記之異常處理

 更新時間:2018年10月04日 09:09:05   作者:莫凡丶  
這篇文章主要為大家詳細介紹了Java學習筆記之異常處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java異常處理的具體代碼,供大家參考,具體內(nèi)容如下

一.異常的分類

1.由Java虛擬機拋出的異常(Error):程序無法處理的問題,用戶不用去進行處理(虛擬機錯誤丶內(nèi)存溢出錯誤丶線程死鎖)

2.Exception異常:程序本身可以進行處理的異常

1).非檢查異常(Unchecked Exception):編譯器不需要強制處理的異常(空指針異常丶數(shù)組下標越界異常丶算數(shù)異常丶類型轉(zhuǎn)換異常)

2).檢查異常(checked Exception):編譯器需要強制處理的異常(IOException丶SQLException) 

二.異常處理的兩種方法

1.通過try丶catch和finally關(guān)鍵字在當前位置進行異常處理

public static void main(String[] a){
 int sum = 0;
 while(true){
  try {  //以兩數(shù)相除除數(shù)不能為0進行舉例
   System.out.println("請依次輸入兩個數(shù)值進行除法操作:");
   Scanner scanner = new Scanner(System.in);
   int one =scanner.nextInt();
   int two =scanner.nextInt();
   sum = one/two;
   System.out.println("最終結(jié)果為:"+sum);
  } catch (Exception e) {    //用catch將錯誤進行捕捉,這里可以使用多重catch,對于不同的錯誤進行捕捉,但最后的catch建議為Exception。
   // TODO Auto-generated catch block //顯示錯誤堆棧信息
   e.printStackTrace();                          
  }finally{            

 System.out.print("無論有沒有錯誤我都會執(zhí)行");          }
 }
 }
}

輸出:

2.通過try丶catch丶finally丶throw和throws拋出異常給函數(shù)調(diào)用者進行處理

public class Try {
 public static void main(String[] a){
  try{
   Function();  //在函數(shù)調(diào)用者處對異常進行處理
  }catch(Exception e)
  {
   e.printStackTrace();
  } 
 }
 static void Function() throws Exception{  //通過throws將異常進行拋出
  
  System.out.println("請輸入一個數(shù)值進行判斷:");
  Scanner scanner = new Scanner(System.in);
  int one =scanner.nextInt();
  if(one<100)
  {
   throw new Exception(); //若輸入的數(shù)值小于100則拋出異常
  }
 } 
}

輸出:

3.自定義異常進行處理

class MyException extends Exception{  //自定義異常,通過super方法傳遞異常信息給父級
 public MyException(){
 super("這是我自定義的異常");
 }
}
 
public class Try {
 public static void main(String[] a){
  try{
   Function();
  }catch(MyException e)
  {
   e.printStackTrace();
  } 
 }
 static void Function() throws MyException{
  
  System.out.println("請輸入一個數(shù)值進行判斷:");
  Scanner scanner = new Scanner(System.in);
  int one =scanner.nextInt();
  if(one<100)
  {
   throw new MyException(); //將自定義異常進行拋出  
  }
 } 
}

輸出:

三.異常鏈

有的時候我們會在處理一個異常的時候拋出一個新的異常,也就是異常的嵌套,但是最后我們得到的異常信息卻只有一個。

示例:

public class Try {
 public static void main(String[] a){
  try{
   Function1();
  }catch(Exception e)
  {
   e.printStackTrace();
  } 
 }
 static void Function1() throws Exception{
  try{
   Function2();
  }catch(Exception e){
   throw new Exception();
  }
 } 
 static void Function2() throws Exception{
  try{
   Function3();
  }catch(Exception e){
   throw new Exception();
  }
 } 
 static void Function3() throws Exception{
   throw new Exception();
 } 
}

輸入結(jié)果:

這樣的話顯示出的異常就只有一個了,那我們?nèi)绻胱屵@條異常鏈中的所有異常信息全部輸出該怎么辦呢?方法很簡單,我們在拋出異常的時候?qū)惓ο笠伯斪鲄?shù)進行拋出就行了。

示例:

public class Try {
 public static void main(String[] a){
  try{
   Function1();
  }catch(Exception e)
  {
   e.printStackTrace();
  } 
 }
 static void Function1() throws Exception{
  try{
   Function2();
  }catch(Exception e){
   throw new Exception("異常2",e);
  }
 } 
 static void Function2() throws Exception{
  try{
   Function3();
  }catch(Exception e){
   throw new Exception("異常2",e);
  }
 } 
 static void Function3() throws Exception{
   throw new Exception("異常3");
 } 
}

運行結(jié)果:

到此,我們Java中的異常便是描述完了。

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

相關(guān)文章

  • 44條Java代碼優(yōu)化建議

    44條Java代碼優(yōu)化建議

    代碼優(yōu)化的最重要的作用應(yīng)該是:避免未知的錯誤。因此,在寫代碼的時候,從源頭開始注意各種細節(jié),權(quán)衡并使用最優(yōu)的選擇,將會很大程度上避免出現(xiàn)未知的錯誤,從長遠看也極大的降低了工作量
    2018-03-03
  • 詳解Java代碼常見優(yōu)化方案

    詳解Java代碼常見優(yōu)化方案

    這篇文章主要介紹了Java代碼常見優(yōu)化方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 使用SpringBoot實現(xiàn)自動發(fā)送注冊驗證碼郵件功能

    使用SpringBoot實現(xiàn)自動發(fā)送注冊驗證碼郵件功能

    一直以來,我都對程序如何自動發(fā)送郵件感到好奇,想象一下,當你在某個網(wǎng)站注冊時,輸入郵箱后不久就收到一封帶有驗證碼的郵件,這種體驗既方便又高效,所以本文給大家介紹了如何用?Spring?Boot?實現(xiàn)自動發(fā)送注冊驗證碼郵件,需要的朋友可以參考下
    2025-04-04
  • Spark使用IDEA編寫wordcount的示例演示

    Spark使用IDEA編寫wordcount的示例演示

    這篇文章主要介紹了Spark使用IDEA編寫wordcount的示例演示,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Netty分布式高性能工具類異線程下回收對象解析

    Netty分布式高性能工具類異線程下回收對象解析

    這篇文章主要介紹了Netty分布式高性能工具類異線程下回收對象解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • java隨機生成10位數(shù)的字符串ID

    java隨機生成10位數(shù)的字符串ID

    這篇文章主要為大家詳細介紹了java隨機生成10位數(shù)字符串ID的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • java8 stream自定義分組求和并排序的實現(xiàn)

    java8 stream自定義分組求和并排序的實現(xiàn)

    這篇文章主要介紹了java8 stream自定義分組求和并排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • Java實現(xiàn)導(dǎo)出ZIP壓縮包的方法

    Java實現(xiàn)導(dǎo)出ZIP壓縮包的方法

    這篇文章主要介紹了Java實現(xiàn)導(dǎo)出ZIP壓縮包的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • JetBrains IntelliJ IDEA 優(yōu)化教超詳細程

    JetBrains IntelliJ IDEA 優(yōu)化教超詳細程

    這篇文章主要介紹了JetBrains IntelliJ IDEA 優(yōu)化教超詳細程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java?Jar包項目內(nèi)存設(shè)置方法舉例

    Java?Jar包項目內(nèi)存設(shè)置方法舉例

    這篇文章主要給大家介紹了關(guān)于Java?Jar包項目內(nèi)存設(shè)置方法的相關(guān)資料,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01

最新評論

武胜县| 汉阴县| 宁化县| 仁怀市| 广东省| 木兰县| 广东省| 武邑县| 高州市| 古交市| 营山县| 绥化市| 苍梧县| 马龙县| 方山县| 广昌县| 竹北市| 祁阳县| 曲水县| 抚松县| 松阳县| 沭阳县| 上饶市| 北辰区| 哈密市| 云安县| 沛县| 含山县| 凤阳县| 泾源县| 大悟县| 辽宁省| 施秉县| 宜城市| 巴彦县| 秦安县| 长汀县| 高唐县| 乃东县| 红桥区| 神农架林区|