java - NetBeans/Java - 断点无法捕获异常
问题描述
在 NetBeans / Java 中 - 异常断点(用于 Throwable)不会捕获异常(Servlet 库代码中的 RuntimeException)。如果您进行繁琐的搜索,您可以找到一条紫色停止线,但无需查看变量的状态等。VS.NET 没有此类疾病 - 它会在您需要的地方停止,一切都很清楚。
这是 NetBeans 问题还是 Java 问题?如何摆脱断点问题?
解决方案
在这里的示例将使您对 Servlet 中的异常处理有基本的了解
实际上放置一个断点你不能捕获一个servlet异常,因为它在到达终点之前发生然后你必须做这样的事情
当 servlet 生成错误时,开发人员可以通过各种方式处理这些异常
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/SampleExceptionHandler")
public class SampleExceptionHandler extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
exceptionProcessor(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
exceptionProcessor(request, response);
}
private void exceptionProcessor(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// Analyze the servlet exception
Throwable throwable = (Throwable) request
.getAttribute("javax.servlet.error.exception");
Integer statusCode = (Integer) request
.getAttribute("javax.servlet.error.status_code");
String servletName = (String) request
.getAttribute("javax.servlet.error.servlet_name");
if (servletName == null) {
servletName = "Unknown";
}
String requestUri = (String) request
.getAttribute("javax.servlet.error.request_uri");
if (requestUri == null) {
requestUri = "Unknown";
}
}
}
推荐阅读
- mysql - 在 SQL 中选择给定时间之前的所有行
- javascript - .then 在异步函数返回值之前调用
- xml - 使用python从XML中删除重复项
- php - AJAX 在本地工作;404 生产
- c++ - range-v3 的管道语法是否有替代方法?
- php - .htaccess 重定向 /dir 到 /index?page=dir
- java - 将 SQL 查询翻译成 JOOQ
- ios - 如何从一个屏幕获取数据并将其添加到另一个屏幕上的 UIView?
- css - 当背景发生动态变化时,CSS background-clip 属性未在 React 中应用
- jquery - jQuery append() 刷新页面