我想知道如何處理這種情況,以及您對此有何建議。在JSP中捕獲異常
我在我的JSP中有一個空指針異常。
String csvDataIn = new String ((String)request.getAttribute("csvString"));
這是因爲,我已經爲了處理查詢到數據庫並獲得csvString創建控制器在春季。一切工作正常,直到我做了一個失敗的查詢。
因此,在控制器:
...
JsonNode json = dataRepository.getDataAsJson(dataNode);
csvString = getCSVfromJsonNode(json);
model.addAttribute("csvString", csvString);
} catch (Exception e) {
Logger.log("CSV controller failed", _moduleClass, e);
}
return "exportCSV";
}
所以變量JSON是從來沒有填充,因爲函數getDataAsJson()失敗。所以這是拋出一個例外。然後我返回到exportCSV.jsp,但是我沒有返回模型中的屬性csvString。
因此,回到jsp中,拋出了空指針異常。
所以我的問題是: a-如何在JSP中捕獲這些異常? b-你認爲比JSP更好的解決方案嗎?我的意思是這可能是最佳做法。
在此先感謝。
感謝您的回覆。他們真的很有幫助:爲了解決這個問題,我進行了以下修改。
...
JsonNode json = dataRepository.getDataAsJson(dataNode);
model.addAttribute("csvString", csvString);
} catch (Exception e) {
Logger.log("CSV controller failed", _moduleClass, e);
}
return "exportCSV";
csvString = getCSVfromJsonNode(json);
}
這解決了發送空字符串的問題,因爲csvString是之前創建的bean,爲空。
,我在這裏我得到的例外是javax.xml.ws.webserviceexception無法發送消息(你知道一個更好的方式在控制器來處理呢?)
我也是在JSP這樣做側,以防萬一:
String csvDataIn = (String)request.getAttribute("csvString");
//This should never happen, but we check anyway.
if (csvDataIn != null){
...
}
所以,我可以留在唯一的疑問是:你知不知道有更好的方式在控制器來處理javax.xml.ws.webserviceexception?
再次感謝
異常處理就像你在說什麼屬於控制器。 – Marvo 2012-04-24 23:31:12