java -- 第8章 異常處理

      網(wǎng)友投稿 892 2025-04-01

      實驗?zāi)康模?/p>

      1.熟悉異常處理機制。

      2.掌握常見異常的捕獲方法。

      實驗內(nèi)容:

      1.編程實現(xiàn)除數(shù)為0的異常處理。

      2.編程實現(xiàn)輸入錯誤的異常處理。

      3.編程實現(xiàn)非法參數(shù)的異常處理。

      實驗步驟:

      1.編寫一個類ExceptionTest,在main方法中使用try-catch-finally語句結(jié)構(gòu)實現(xiàn):

      1)在try語句塊中,編寫兩個數(shù)相除操作,相除的兩個操作數(shù)要求程序運行時用戶輸入;

      2)在catch語句塊中,捕獲被0除所產(chǎn)生的異常,并輸出異常信息;

      3)在finally語句塊中,隨意輸出一條語句,比如:

      System.out.println("執(zhí)行finally語句塊。");

      提示:捕捉ArithmeticException異常。

      源代碼:

      import Java.util.Scanner;

      public class ExceptionTest {

      public static void main(String[] args) {

      Scanner input = new Scanner(System.in);

      System.out.println("請輸入被除數(shù):\n");

      int op1 = input.nextInt();

      System.out.println("請輸入除數(shù):\n");

      int op2 = input.nextInt();

      int result = 0;

      try {

      result = op1 / op2;

      } catch (ArithmeticException e) {

      e.printStackTrace();

      } finally {

      System.out.println("運行完成");

      }

      System.out.println(result);

      java -- 第8章 異常處理

      }

      }

      運行結(jié)果截圖:

      2. 編寫一個應(yīng)用程序,要求從鍵盤輸入一個double型的圓的半徑,計算并輸出其面積。測試當(dāng)輸入的數(shù)據(jù)不是double型數(shù)據(jù)(如字符串“abc”)會產(chǎn)生什么結(jié)果,怎樣處理。

      提示:捕捉InputMismatchException異常。

      源代碼:

      import Java.util.InputMismatchException;

      import java.util.Scanner;

      public class Circle {

      public static void main(String[] args){

      Scanner input = new Scanner(System.in);

      System.out.println("請輸入圓的半徑:");

      double r = input.nextDouble();

      double s = 0;

      try {

      s = r*r*3.14;

      } catch (InputMismatchException e) {

      e.printStackTrace();

      } finally {

      System.out.println("運行完成");

      }

      System.out.println("圓的面積為:"+s);

      }

      }

      運行結(jié)果截圖:

      3.設(shè)計類Person,要求從鍵盤輸入身份證號,為類的屬性id設(shè)置值,當(dāng)輸入的身份證號的長度為18時,賦值給id,當(dāng)值長度不是18時,拋出IllegalArgumentException異常,然后捕獲和處理異常,編寫程序?qū)崿F(xiàn)以上功能。

      提示:IllegalArgumentException異常是用戶自定義的異常,不能依靠系統(tǒng)自動拋出,必須通過throws語句實現(xiàn)??蓞⒖家韵麓a:

      源代碼:

      import java.util.InputMismatchException;

      import java.util.Scanner;

      class person {

      private String id;

      public String getId(){

      return id;

      }

      public void setId(String id) throws IllegalArgumentException

      {

      if(id.length() != 18)

      {

      throw(new IllegalArgumentException());

      }

      this.id = id;

      }

      }

      public class Sy8_3{

      public static void main(String[] args){

      person p1 = new person();

      Scanner input = new Scanner(System.in);

      System.out.println("請輸入身份證號碼:");

      try {

      p1.setId(input.next());

      System.out.println("你輸入的身份證是:"+p1.getId());

      } catch (IllegalArgumentException e) {

      System.out.println("輸入有誤");

      }

      }

      }

      運行結(jié)果截圖:

      實驗小結(jié)

      異常指不期而至的各種狀況,如:文件找不到、網(wǎng)絡(luò)連接失敗、非法參數(shù)等。異常是一個事件,它發(fā)生在程序運行期間,干擾了正常的指令流程。Java通過API中Throwable類的眾多子類描述各種不同的異常。因而,Java異常都是對象,是Throwable子類的實例,描述了出現(xiàn)在一段編碼中的錯誤條件。當(dāng)條件生成時,錯誤將引發(fā)異常。

      我們可以通過try和cath關(guān)鍵字來捕獲異常,其中catch可以多次使用,進行多重捕獲異常,如下圖所示:

      第三步可以使用throws關(guān)鍵字來拋出異常,在方法名稱的尾部加上throws關(guān)鍵字和拋出的異常,如下圖所示:

      我們可以通過throws關(guān)鍵字來拋出多個異常,在拋出的異常名稱后面用逗號分隔開,下面代碼就拋出了RemoteException異常和InsufficientFundsException異常,如下圖所示:

      異常處理中還有一個finally關(guān)鍵字,無論有沒有異常,finally中的代碼總是被執(zhí)行,需要注意的是finally不是必要的,如下圖所示

      Summary:

      養(yǎng)成良好的編程習(xí)慣,不要把錯誤給吞噬掉(即捕獲到異常以后又不做出相應(yīng)處理的做法,這種做法相當(dāng)于是把錯誤隱藏起來了,可實際上錯誤依然還是存在的), 也不要輕易地往外拋錯誤,能處理的一定要處理,不能處理的一定要往外拋。往外拋的方法有兩種,一種是在知道異常的類型以后,方法聲明時使用throws把 異常往外拋,另一種是手動往外拋,使用“throw+異常對象”你相當(dāng)于是把這個異常對象拋出去了,然后在方法的聲明寫上要拋的那種異常。

      Java

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何使用Excel做出散點統(tǒng)計圖
      下一篇:如何在Excel中創(chuàng)建是或否復(fù)選框?
      相關(guān)文章
      在线播放亚洲第一字幕| www亚洲精品久久久乳| 亚洲国产精品一区二区第四页| 亚洲AV综合色区无码二区爱AV| 亚洲高清视频免费| 91亚洲精品视频| 亚洲国产人成在线观看69网站| 亚洲精品V欧洲精品V日韩精品| 亚洲日本va中文字幕久久| 国产成人亚洲综合无码| 红杏亚洲影院一区二区三区| 国产国拍亚洲精品福利| 激情综合色五月丁香六月亚洲| 亚洲伊人久久精品影院| 国产亚洲av片在线观看播放| 狠狠色伊人亚洲综合成人| 亚洲国产a∨无码中文777| 亚洲国产美国国产综合一区二区 | 久久久久亚洲av无码专区| 91亚洲国产成人久久精品网站 | 亚洲国产综合91精品麻豆| 337p日本欧洲亚洲大胆色噜噜| 亚洲精品中文字幕无乱码| 亚洲午夜精品在线| 亚洲色欲色欱wwW在线| 亚洲av日韩av永久在线观看| 无码欧精品亚洲日韩一区夜夜嗨| 亚洲国产人成精品| 人人狠狠综合久久亚洲88| 久久水蜜桃亚洲av无码精品麻豆 | 久久久久亚洲爆乳少妇无 | 亚洲欧美国产日韩av野草社区| 亚洲av无码日韩av无码网站冲| 亚洲国产精品第一区二区三区| 国产中文在线亚洲精品官网| 亚洲av无码不卡| 亚洲最大的视频网站| 亚洲 欧洲 自拍 另类 校园| 久久亚洲精品无码网站| 国产日产亚洲系列最新| 久久精品国产亚洲|