JAVA學習筆記——JAVA基礎文法(七)

來源:互聯網
上載者:User

我們知道java.lang包底下有一個java.lang.Throwable他實現了兩個介面,一個是Error;另一個是Exception

其中Error:致命的錯誤,不可修複的,一般出現在JAVA虛擬機器

接下來我們主要來介紹一下Exception

一、Exception:異常,代碼寫錯了

  1、編譯時間異常:編譯的時候要檢查,並且一定要寫try-catch編譯才能通過

  2、運行時異常,他是比較特殊的一個異常,變現為編譯時間正常,啟動並執行時候出異常  RuntimeException是java.lang包底下的所有的異常當中的唯一一個運行時的異常;其中常出現的異常有:

ArrayIndexOutOfBoundsException

NumberFormatException

NullPointException:當一個引用的值為NULL的時候,試圖用他來調用方法或者訪問屬性就會發生null 指標異常

下面這個代碼也說明了NumberFormatException這個異常,同時也瞭解try-catch語句塊的使用方法:

import java.util.*;

public class test{

         public static void main(String[] args){

                   try{

                            int num1 = new Integer(args[0]);

                            int num2 = new Integer(args[1]);

                            int num3 = num1 + num2;

                            System.out.println(num3);

                   }catch(NumberFormatException e){

                            System.out.println("請輸入合法的整數!!");

                   }finally{

                     System.out.println("計算完成");

                   }

         }       

}

  程式詳解:這個程式如果輸入計算的數位時候輸入了非整數就會執行catch語句塊裡面的代碼,也就是說如果try語句塊裡面的代碼運行時出現了異常那麼try語句塊裡面異常語句下面的代碼就不會再執行,轉而執行catch語句塊裡面的語句,但是finally語句塊是始終都會執行的,不管程式有沒有發生異常他裡面的語句都會執行。

  知識擴充:try-catch語句塊可以捕獲多個異常,但是要注意的是先捕獲子類的異常再捕獲父類的異常

 二、Throws、Throw關鍵字

  1、Throws關鍵字 :把異常拋給調用他的環境也就是說把異常往上一級拋

  2、Throw關鍵字:手動拋出,用於自己寫的異常,今後會在strus架構個人化異常的時候使用。下面這個簡單的程式詳細的實現該關鍵字的使用方法

import java.util.*;public class test{         public static void main(String[] args){                   Person p = new Person();                   p.SetAge(134);         }       }class Person{         int age;         public void SetAge(int age){                   if(age<0||age>120){                       throw new MyAgeException("年齡是在0到120歲之間");                   }                   else{                            this.age = age;                   }         }}class MyAgeException extends RuntimeException{         MyAgeException(String msg){                   super(msg);         }}

 

  程式詳解:上述程式自己手動的寫了一個異常MyAgeException繼承至RuntimeException當main函數傳入年齡的時候我們自己對傳入的年齡進行判斷,如果不合格話就使用關鍵字throw建立一個MyAgeException異常對象並把異常傳給這個對象,同時傳入一個異常的提示資訊。因為父類中已經寫好了顯示資訊的方法,所以我們只要調用父類的顯示方法即可,所以重寫MyAgeException 構造方法的時候方法體裡面直接調用父類的方法super(msg)來顯示資訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.