<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>异常处理示例</title>
</head>
<body>
<%
try {
// 可能会抛出异常的代码块
String jdbcUrl = "jdbc:mysql://localhost:3306/nonexistent_database";
Connection connection = DriverManager.getConnection(jdbcUrl, "username", "password");
// 这里的代码可能会抛出SQLException
} catch (SQLException e) {
// 捕获SQLException并处理
out.println("<h2>数据库连接失败:" + e.getMessage() + "</h2>");
} catch (Exception e) {
// 捕获其他异常并处理
out.println("<h2>发生了其他异常:" + e.getMessage() + "</h2>");
}
%>
</body>
</html>
在上述示例中,我们使用了try-catch块,其中包含可能会抛出异常的代码。在catch块中,我们分别捕获了SQLException和其他Exception,并进行相应的处理。
除了try-catch块,你还可以使用JSP页面的<%@ page errorPage="error.jsp" %>指令将错误重定向到一个专门处理错误的JSP页面。例如:
<%@ page import="java.sql.*" errorPage="error.jsp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>异常处理示例</title>
</head>
<body>
<%
// 可能会抛出异常的代码块
String jdbcUrl = "jdbc:mysql://localhost:3306/nonexistent_database";
Connection connection = DriverManager.getConnection(jdbcUrl, "username", "password");
// 这里的代码可能会抛出SQLException
%>
</body>
</html>
然后,在error.jsp页面中,你可以获取异常信息并进行处理:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>错误处理页面</title>
</head>
<body>
<%
Throwable throwable = (Throwable) request.getAttribute("javax.servlet.error.exception");
String errorMessage = throwable != null ? throwable.getMessage() : "未知错误";
out.println("<h2>发生错误:" + errorMessage + "</h2>");
%>
</body>
</html>
在实际应用中,你可能还需要配置web.xml文件以定义全局错误页面,这样当发生未捕获的异常时,用户将被重定向到定义的错误页面。
转载请注明出处:http://www.zyzy.cn/article/detail/6926/JSP