異常體系
1. 運行時異常
ArithmeticException>算術異常 -
Eg:
NullPointerException>空指針異常-一個爲null的東西-調用方法或屬性
ArrrayIndexOutOfBoundsException> 索引超出指定範圍
ClassCastException>發生在強制轉型
IllegalArgumentException>參數非法
2. 編譯時異常
FileNotFoundException
3. 錯誤
Error:錯誤-程序設計問題
OutOfMemoryError>堆內存溢出
內存佔用:1、000、000、000x4=4、000、000、000B
內存佔用:10、000、000、000x4=40、000、000、000B
因爲總內存爲:4x1024Mx1024KBx1024B=4、294、967、296B遠小於40、000、000、000B,所以內存崩潰。
注意:垃圾自動回收機制>當佔用的內存沒有被使用時,系統會自動回收此內存空間。
-我不斷創建按鈕,但是內存佔用基本不動。
StackOverflowError>棧內存溢出
通過不斷調用方法而不斷進行壓棧導致棧內存溢出。
*如何測棧的深度
異常處理
1. try-catch-finally
程序的思路
程序進入try語句時,當遇見異常時轉而進入catch語句時
注意:不要濫用try、catch語句,不能屏蔽需要報出來的異常
* printStackTrace()方法的意思是:在命令行打印異常信息在程序中出錯的位置及原因。(這是白話解釋,比較容易理解)
Finally>最後-始終都會執行-關閉資源
2. throw
修改代碼後通過