Throwable是所有錯誤或異常的超類,只有當對象是這個類的實例時才能通過Java虛擬機或者Java throw語句拋出。
當Java運行環境發出異常時,會尋找處理該異常的catch塊,找到對應的catch塊之后,將異常交給catch塊捕獲。
throwable的子類是exception和error,exception又分為IOException,NullPointerException等
空指針異常發生的原因:
調用方法的對象為null
根據控制台提示的位置,找到對應的異常位置。
例如:
List<String> books = Dao.getData();
int size = books.size();
第二行報空指針異常
那么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");
}