我想知道如何处理这种情况,以及您对此有何建议。在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