------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的複製到另外目錄下...