我想知道如何处理这种情况以及您对此有何建议。
我的 JSP 中有一个空指针异常。
String csvDataIn = new String ((String)request.getAttribute("csvString"));
这是因为,我在 spring 中创建了一个 Controller 来处理对 DB 的查询并获取一个 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 的更好方法吗?
再次感谢