1.對應String類型的對象使用println()方法時,如果對象為null,將列印null而不是引發NullPointerException,由此引用的問題是容易造成錯覺,對於以後對字串的操作容易引起問題。
2.引發NullPointerException異常,主要原因是沒有對對象的存在性進行驗證,在jsp編程中經常出現:if (request.getParameter(“username”).equals(“xxx”))、out.println(session.getAttribute(“record”))等。解決這個問題的方法是在使用前進行判空比較:
if (request.getParameter(“username”)!=null) {if if (request.getParameter(“username”). equals(“xxx”))…} |
3.引發NumberFormatException異常:主要原因是將使用者提交的內容轉換為整數或者浮點數時使用者輸入了其它非法字元。處理的主要方式是在需要進行轉換的地方使用try/catch塊捕獲此異常然後提示使用者輸入合法資料。
4.引發StringIndexOutOfBoundsException異常:主要原因是使用String的substring()、charAt()等方法,而字串的長度不夠,就會引發此異常;在字串為null時也會引發NullPointerException。解決的方法是判空,判斷長度或者轉換為位元組數組。考慮到這些操作很多,可以將之封裝到javabean中。
5.引發NoClassDefFoundError錯誤,主要原因是類路徑或者類檔案放置錯誤,類檔案的放置要符合伺服器的要求。
6.引發java.lang.Error錯誤,主要原因是對系統所訪問外部資源,未執行關閉操作,導致外部資源大量浪費,最終可能導致系統無法正常運行;對系統所訪問的外部資源關閉次數太多,外部系統無法正常處理;所系統訪問的外部資源出現異常情況。
解決的方法是:訪問外部資源前,首先檢查該資源(如資料庫)是否可正常串連或操作;訪問外部資源時,如果進行了串連,一定進行關閉操作,並僅進行一次關閉操作;盡量在同一操作中共用外部資源,以減少該操作對資源的消費,提高程式的執行效率。