day15(11.21)筆記

------2.16.11.21------------

Day15

 

 

異常分類:

Java.lang.Throwable

Error  錯誤                       Exception   異常

Error:一般只的是錯誤”,這種錯誤是程序員控制不力的,一般重大錯誤

 

Exception :一般只當是異常”,這種異常程序眼可以通過修改代碼排除異常

 

 

 常見異常:

   空指針異常   NullPointerException

   數組下標越界 ArrayIndexOutOfBoundsException

   類轉換異常   ClassCastException

   數字格式化異常 NumberFormatException

   字符串下標越界 StringIndexOutOfBoundsException

   算術運算異常   ArithmicException

 

   非運行異常:

   轉換異常         ParseException

   文件未找到異常   FileNotFoundException

   文件內容操作異常 IOException

   

 

異常處理機制(處理具體的異常)

 

第一種:使用throws關鍵字拋出異常

1.基本語法 : throws  異常類

2.在方法的簽名後面使用:異常類

3,迴避異常(形式上的處理,不是真正的異常處理,實際上和沒有處理結果是一樣的.所以一般不建議寫)

Public void add() throws NullPointerException,ClassCastException

4,異常最終會拋給jvm,jvm會在控制檯打印出異常對象以及異常的跟蹤棧信息

 

第二種:捕獲異常

1,基本語法:

//try{

可能產生異常的語句

}catch(異常類  異常變量){

對異常做的具體處理

}catch(異常類  異常變量){}

 

2,try裏面放可能產生異常的語句,但是不一定會針對產生異常.

Try ...catch執行流程:

按照順序結構從上到下執行代碼

 

當執行到try代碼塊中時,若果代碼塊沒有產生產生異常,不會執行catch代碼塊

當執行到try代碼塊中產生異常了,jvm首先會終止運行.

在內存產生一個異常對象:空指針,算數運算等等

然後根據代碼塊對異常處理後,不會再返回,try代碼塊繼續後自行代碼塊中夏敏的語句,會後自行catch代碼塊下的內容.

3,多個catch代碼塊應該是互斥的

 

 

Try代碼塊不能單獨存在,可以跟catch,也可以跟着finally

//try{

 

}catch(){

 

}finally{

//資源數據庫, 關閉流...直接class

}

 

 

第三種:自定義異常

基本語法:定義一個類:

Class 類名 extends RuntimeException{

//添加無參數的構造方法

一個參數的構造方法

在含有一個參數的構造方法中,調用服了的含有一個參數的構造方法;

最終都會調用Throwable類中一般含有一個參數的

}

 

使用自定義異常類

一般在一個方法張,如果某些內容可能不符合要求正常邏輯時,可以:

...throw new 自定義異常類()

throw

登錄,註冊的應戶名密碼等在控制檯提示異常

 

 

第四種:throws系統異常類對象

,try... catch    捕獲異常

 

 

 

5,Exception常用的方法

.getMessage()

.getCause()

.printStrackTrace()

補充:

6含有繼承關係的類中,子類不能比父類拋出範圍更大的異常,(異常的父類或者更上上的父類)但是可以拋出來多個同級的異常

 

 

String類  StringBuffer 類和StringBuilder區別

 

相同點:都是java提供的用於操作字符串的特殊類,

這三個類都在java.lang包下,都使用final修飾

 

 

 

不同點:

String:

1,java操作字符串的常用類

2,字符串長度被定義之後,不能再改變

3,底層使用char數組+其他操作

A mutable sequence of characters.  This class provides an API compatible

 * with <code>StringBuffer</code>, but with no guarantee of synchronization.

 * This class is designed for use as a drop-in replacement for

 * <code>StringBuffer</code> in places where the string buffer was being

 * used by a single thread (as is generally the case).

StringBuffer  是單線程的.但是是安全的.

StringBuilder是多線程的,但是是線程不安全的

 

常用方法

Append()

Insert()

Delete()

 

 

IO API

 

1.FIle

 

What

什麼是File?

java中用於操作磁盤文件|目錄的一個類.只能對磁盤中的牡蠣|文件進行物理操作/(只能操作文件的物理信息,不能操作文件內容./)

目錄名,文件名,文件的大小,上一層目錄.文件是否刻度,文件是否科協,創建目錄,創建文件,查看最後一次修改時間等等

 

Why

爲什麼要用File

利用java代碼實現與計算機磁盤文件|目錄進行物理操作

 

When

什麼時候用?

操作

How

怎麼用呢?

 

常用的方法:

1)File作爲目錄,常用的方法

0)構造方法

 

 

isDirectory():是否是目錄

mkdir()創建目錄

 

 

2)作爲文件,常用的方法

 

2. File 類的常用方法:

 

  1) File 作爲目錄,常用的方法:

     0) 構造方法

        File(String )

        File(URI)

        File(File,String)

        File(String,String)

 

     1) isDirectory():是否是目錄

        如果是目錄,返回true|

        如果不是目錄或者目錄不存在,返回false

     2) exists():是否存在

        

     3) mkdir() :創建目錄(單層)

     4) mkdirs():創建目錄(多層,包括2)

     5) delete():刪除目錄|文件

     6) getName():獲取目錄名稱

     7) getParent():獲取父目錄名稱

     8) isAbsolute():判斷是否爲絕對路徑

     9) canRead():是否可讀

    10) canWrite():是否可寫

     ......

 

 

  2) File 作爲文件,常用方法:

     1) isFile():是否是文件

     2) exists():文件是否存在

     3) createNewFile():創建文件

     4) delete():刪除文件

     5) isHiddle():是否是隱藏文件

     6) canRead()|canWrite(): 是否可讀|可寫

     8) lastModified():最後一次修改時間

     9) renameTo():重命名

 

 

 

  3) 高級方法(高級操作)

   列出某目錄下的所有文件(包括子目錄下的文件)

   刪除某目錄下的所有文件(包括子目錄下的文件)

   列出某目錄下所有.mp3結尾的文件

   刪除某目錄下所有以.jpg結尾的文件

   ....

   將某目錄下所有文件大小超過10M的複製到另外目錄下...

 

 


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