程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> throw-Java的API中對未檢測異常的處理方式問題

throw-Java的API中對未檢測異常的處理方式問題

編輯:編程綜合問答
Java的API中對未檢測異常的處理方式問題

在JDK的API中,有很多類似這樣的語句if (pathname == null) { throw new NullPointerException(); },我是這樣想的——程序員在編寫程序時如何避免未檢測異常呢,就是要先判斷一下,API也是一樣的,它也判斷了,只是說它不知道如何很好的處理就干脆拋出來。好,現在程序員開始編寫代碼,如果程序員在自己的程序裡面沒有判斷是否為空,最後這種空指針異常發生了,程序停止, 突然覺得API的這個判斷好像寫在那裡也沒什麼用啊。 如果程序員在自己代碼中判空了,這句話永遠也執行不到,豈不是更沒什麼用處。

最佳回答:


真的好長一段。。。。
OK,回答你的問題,其實你問的是在JDK的API中,而不是普通應用程序,所以這路並不適合所有應用程序。你可以想象一下API的設計,你並不知道輸入參數會是什麼。因為沒有任何方法可以保證輸入的參數不是null,所以在API設計的時候文檔會需要指明,某些參數不允許是null,當然很多情況你可以傳遞進去讓底層自動處理,但是API這麼設計會導致性能下降。所以JDK采用了主動監測機制。順便說一句,JDK7開始,有個新的API Objects.requireNonNull()是專門用來做null參數檢測的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved