Throwable是全部錯誤或異常的超類,只有當對象是這個類的實例時才能經過Java虛擬機或者Java throw語句拋出。指針
當Java運行環境發出異常時,會尋找處理該異常的catch塊,找到對應的catch塊以後,將異常交給catch塊捕獲。對象
throwable的子類是exception和error,exception又分爲IOException,NullPointerException等get
空指針異常發生的緣由:虛擬機
調用方法的對象爲nullio
根據控制檯提示的位置,找到對應的異常位置。List
例如:exception
List<String> books = Dao.getData();方法
int size = books.size();error
第二行報空指針異常異常
那麼books對象爲null,向上查找第一行中Dao.getData();
那麼進一步查看Dao對象是否爲空,若不爲空,則繼續向上查找,找出爲null的對象
改進:
1.增長條件判斷
List<String> books = Dao.getData();
if(books!=null){
int size = books.size();
}
2.捕獲異常
List<String> books = Dao.getData();
try{
int size = books.size();
}catch(NullPointerException e){
e.printStackTrace();
System.out.printLn("size = 0");
}