因此,我有一个 servlet 作为 RSS 提要项目的一部分,它接受 URL,然后它继续执行一系列超出此特定问题的其他操作。如果用户(通过表单)提交空白或无效的 URL,我有以下代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
URL feedURL = null;
try {
feedURL = new URL(request.getParameter("url"));
} catch (MalformedURLException e) {
PrintWriter out = response.getWriter();
out.println("Please go back and submit a valid URL.");
}
现在,我得到的是 NullPointerException
,而不是 MalformedURLException
。我以正确的方式处理这件事吗?我是否必须将错误消息定向到更具体的位置才能到达用户?我最好使用 response.sendError()
或其他方法(例如客户端的 JavaScript)吗?
如果重要的话,请求来自 JSP。
一如既往,StackOverflow 社区,提前感谢您的帮助。
最佳答案
try {
feedURL = new URL(request.getParameter("url"));
} catch (MalformedURLException e) {
PrintWriter out = response.getWriter();
out.println("Please go back and submit a valid URL.");
return;
}
您应该在 catch block 中返回。下一行可能会抛出空指针,因为 feedURL 将为空。如果这不是原因,请分享您获得的空指针跟踪。
在我看来,您应该从 catch block 转发到错误页面。
关于java - 这不应该起作用吗?显示来自 servlet 的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13833218/