Java學習----day7——(4)Java異常處理機制之入門篇

序言:異常的處理——-(存在異常——>解決方案處理)
1.異常:程序中出現無法執行的代碼段。

package com.Example.Charpter07;
 /**
  * @author Administrator 
  * @date : 2017年4月2日 上午11:47:01
  * @function : 瞭解異常 
*/ 
public class Introduction {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
            int c=1/0;
            System.out.println(c);//可能出現異常的語句
        } catch (Exception e) {
            // TODO: handle exception
            //異常匹配成功後的異常處理
            e.printStackTrace();
        }finally{
            System.out.println("異常處理結束");
        }


    }

}

控制檯消息:
這裏寫圖片描述
因爲在數學處理中,0作爲被除數,結果爲無窮大!在內存中怎麼表示????當然就是內存被佔滿。後續程序當然無法繼續執行;
總結:異常分爲:(1)程序執行時出現的錯誤;(2)JVM出現的錯誤;

2.解決異常方案
一般情況下就是直接限定好初步條件,防止出現問題;
這樣極大的佔用了資源,使得程序運行效率變低;

Java提供了自己的異常處理機制,try——catch語句;

try {
            int c=1/0;
            System.out.println(c);//可能會出現異常的語句
        } catch (Exception e) {
            // TODO: handle exception
            //異常匹配成功後的異常處理
            e.printStackTrace();
        }finally{
            System.out.println("異常處理結束");//異常處理的統一出口;
        }

具體的底層數據流動:
step1.
try的代碼體中是可能出現異常的代碼段;
step2.
出現異常java自己實例化異常類去和catch中異常類匹配,再進去具體代碼段執行異常處理;
step3.
finally是異常處理的統一出口;

3.異常類
這裏寫圖片描述
Error:是指JVM中的錯誤,程序所不能解決的;
Exception:程序中出現的錯誤;

4.catch語句體中需要注意的點
catch是相當於捕獲異常;一般可以直接使用Exception捕獲異常;
打印錯誤信息的時候就是

//第一種方法
System.out.println(e);
//第二種方法
e.printStackTrace();

5.throws和throw關鍵字

1.throws關鍵字

package com.Example.Charpter07;

public class ThrowsDemo {

    public void errorDemo() throws Exception{
        System.out.println("出現異常"+(1/0));
    }
    public static void main(String[] args) {
        ThrowsDemo throwsdemo=new ThrowsDemo();
        try{
            throwsdemo.errorDemo();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

這裏寫圖片描述
個人理解:此處可能存在異常,在方法體中定義try—catch語句好像沒有看見到吧,這塊存有疑問!try—-catch語句在方法體中直接使用!(個人猜測,是異常類需要實例化),所以通過標識throws需要在主方法中添加Java的異常處理機制。

2.throw關鍵字
手動拋出異常但是有時候有些錯誤在jvm看來不是錯誤,比如說
很正常的整形變量賦值,但是在我們眼中看來就不正常,誰的年齡會是負的呢。所以我們需要自己手動引發異常,這就是throw的作用

int age = 0;  
age = -100;  
if(age<0)  
{  
Exception e = new Exception();//創建異常對象  
throw e;//拋出異常  
}  
System.out.println(age);  

6.自定義異常類

發佈了68 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章