JAVA小白手寫總結
提示:本篇簡單列舉了一些Java中的異常與異常處理
前言
提示:很多小夥伴們都會問到,什麼是異常呢,又該怎麼解決呢?
下面我們就從下面的一個案例中切入今天的內容。
提示:以下是本篇文章正文內容,下面案例可供參考
一、異常是什麼?
示例:你要從一個檔案讀資訊,可這個檔案不存在,程式無法執行下去了,故程式要抓這些異常,通過異常處理機制來丟擲這些異常,程式設計師就可以通過丟擲的異常來修改程式碼。try{}catch{}finally{}try塊中放入可能會出現異常的程式碼,catch塊負責捕獲異常,finally塊負責處理一些必須執行的程式碼,比如關閉流等。
二、異常的種類
1.認識異常的兩大類
在Java中我們將異常分為兩大類
- Error,表示的是虛擬機器錯誤
- Exception,表示的是編碼、環境、使用者操作輸入時出現的問題
2.常見的幾類異常
- 空指標異常 NullPointerException
- 陣列下標越界異常 ArrayIndexOutOfBoundsException
- 型別轉換異常 ClassCastException
- 算術異常 AirthmeticException
- 檔案異常 IOException
三、異常的處理
處理異常時我們通常採用try—catch以及try—catch—finally來處理異常
1、處理異常
- try程式碼塊中存放的是要監控的區域
- catch程式碼塊中捕獲異常
- finally程式碼塊中處理善後工作,一般存放IO流/資源的關閉
結構如下:
try{
//有可能出現異常的語句
}catch(Exception e){//異常的型別 和接受物件
}finally {
//異常的出口,最後執行且一定被執行
}
package com.yichang;
public class Test {
public static void main(String[] args) {
try {
System.out.println(1/0);//0不能做除數
}catch (Exception e){
e.printStackTrace();//列印錯誤資訊,給程式設計師看的
System.out.println("異常");//給客戶看的
}finally {
//一般做收尾工作
System.out.println("finally");
}
}
}
2、異常丟擲
- throws表示方法準備要扔出來一個異常
- throw表示向外丟擲異常
public void diivide(int one,int two) throws Exception{
if(two == 0){
throw new Exception("兩數相除,除數不能為0");
}else{
System.out.println("兩數相除,結果為"+one/two);
}
}
實際應用中的經驗總結
- 處理執行時異常時,採用邏輯去合理規避同時輔助try—catch處理
- 在多重catch塊後面,可以加一個catch(Exception)來處理可能會被遺漏的異常
- 對於不確定的程式碼,也可以加上try—catch,處理潛在的異常
- 儘量去處理異常,切忌只是簡單地呼叫printStackTrace()去列印輸出
- 具體如何處理異常,要根據不同的業務需求和異常型別去決定
- 儘量新增finally語句塊去釋放佔有的資源