Java基礎十

Java基礎

異常

finally代碼塊:定義一定執行的代碼。
通常用於關閉資源。

catch是用於處理異常。如果沒有catch就代表異常沒有被處理過,如果該異常是檢測時異常。那麼必須聲明。

異常在子父類覆蓋中的體現;
1,子類在覆蓋父類時,如果父類的方法拋出異常,那麼子類的覆蓋方法,只能拋出父類的異常或者該異常的子類。
2,如果父類方法拋出多個異常,那麼子類在覆蓋該方法時,只能拋出父類異常的子集。
3,如果父類或者接口的方法中沒有異常拋出,那麼子類在覆蓋方法時,也不可以拋出異常。
如果子類方法發生了異常。就必須要進行try處理。絕對不能拋。

異常的總結

異常:
是什麼?是對問題的描述。將問題進行對象的封裝。

異常體系:
Throwable
|–Error
|–Exception
|–RuntimeException

異常體系的特點:異常體系中的所有類以及建立的對象都具備可拋性。
也就是說可以被throw和throws關鍵字所操作。
只有異常體系具備這個特點。

throw和throws的用法:

throw定義在函數內,用於拋出異常對象。
throws定義在函數上,用於拋出異常類,可以拋出多個,用逗號隔開。

當函數內容有throw拋出異常對象,並未進行try處理。必須要在函數上聲明,否則編譯失敗。
注意,RuntimeException除外。也就說,函數內如果拋出的RuntimeExcpetion異常,函數上可以不用聲明。

如果函數聲明瞭異常,調用者需要進行處理。處理方法可以throws可以try。

異常有兩種:
編譯時被檢測異常
該異常在編譯時,如果沒有處理(沒有拋也沒有try),編譯失敗。
該異常被標識,代表這可以被處理。
運行時異常(編譯時不檢測)
在編譯時,不需要處理,編譯器不檢查。
該異常的發生,建議不處理,讓程序停止。需要對代碼進行修正。


異常處理語句:
try
{
需要被檢測的代碼;
}
catch ()
{
處理異常的代碼;
}
finally
{
一定會執行的代碼;
}

有三個結合格式:

  1. try
    {

    }
    catch ()
    {
    }

  2. try
    {

    }
    finally
    {

    }

  3. try
    {

    }
    catch ()
    {
    }
    finally
    {

    }

注意:
1,finally中定義的通常是關閉資源代碼。因爲資源必須釋放。
2,finally只有一種情況不會執行。當執行到System.exit(0);fianlly不會執行。


自定義異常:
定義類繼承Exception或者RuntimeException
1,爲了讓該自定義類具備可拋性。
2,讓該類具備操作異常的共性方法。

當要定義自定義異常的信息時,可以使用父類已經定義好的功能。
異常異常信息傳遞給父類的構造函數。
class MyException extends Exception
{
MyException(String message)
{
super(message);
}
}

自定義異常:按照java的面向對象思想,將程序中出現的特有問題進行封裝。

異常的好處:
1,將問題進行封裝。
2,將正常流程代碼和問題處理代碼相分離,方便於閱讀。

異常的處理原則:
1,處理方式有兩種:try 或者 throws。
2,調用到拋出異常的功能時,拋出幾個,就處理幾個。
一個try對應多個catch。
3,多個catch,父類的catch放到最下面。
4,catch內,需要定義針對性的處理方式。不要簡單的定義printStackTrace,輸出語句。
也不要不寫。
當捕獲到的異常,本功能處理不了時,可以繼續在catch中拋出。
try
{
throw new AException();
}
catch (AException e)
{
throw e;
}

如果該異常處理不了,但並不屬於該功能出現的異常。
可以將異常轉換後,在拋出和該功能相關的異常。

或者異常可以處理,當需要將異常產生後和本功能相關的問題提供出去,
當調用者知道。並處理。也可以將捕獲異常處理後,轉換新的異常。
try
{
throw new AException();
}
catch (AException e)
{
// 對AException處理。
throw new BException();
}

異常的注意事項:
在子父類覆蓋時:
1,子類拋出的異常必須是父類的異常的子類或者子集。
2,如果父類或者接口沒有異常拋出時,子類覆蓋出現異常,只能try不能拋。

包(package)

對類文件進行分類管理。

給類提供多層命名空間。

寫在程序文件的第一行。

類名的全稱的是 包名.類名。

包也是一種封裝形式。

包與包之間訪問

包與包之間進行訪問,被訪問的包中的類以及類中的成員,需要public修飾。

不同包中的子類還可以直接訪問父類中被protected權限修飾的成員。

在這裏插入圖片描述

import

爲了簡化類名的書寫,使用一個關鍵字,import.
import 導入的是包中的類。
建議,不要寫通配符 * ,需要用到包中的哪個類,就導入哪個類。

import
簡化類名。

一個程序文件中只有一個package,可以有多個 import。

用來導包中的類,不導入包中的包。

通常寫import mypack.Demo; 而不寫import mypack.*

jar包

Java的壓縮包
方便項目的攜帶。
方便於使用,只要在classpath設置jar路徑即 可。
數據庫驅動,SSH框架等都是以jar包體現的。

Jar包的操作

創建jar包 :
jar -cvf mypack.jar packa packb

查看jar包 :
jar -tvf mypack.jar [>定向文件]

解壓縮 :
jar -xvf mypack.jar

自定義jar包的清單文件 :
jar –cvfm mypack.jar mf.txt packa packb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章