1.使用exception隐式对象创建 异常处理页面,能查看异常发生时的异常信.息。 提示: 1题至少需要创建2个页面,且需分别用到page指令中的isErrorPage、errorPage等属性。
时间: 2024-11-25 16:19:53 浏览: 23
在Java web开发中,通过异常处理页面和`exception`隐式对象,可以捕获并展示Web应用程序在运行过程中发生的异常。下面是一个简单的例子,我们将创建两个页面:一个是正常的请求页,另一个是用于处理异常的错误页。
**1. 定义正常请求页(index.jsp)**
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java"
pageEncoding="UTF-8" isErrorPage="false" %> <!-- 指定这不是一个错误页面 -->
<!DOCTYPE html>
<html>
<head>
<title>正常页面</title>
</head>
<body>
<h1>欢迎访问!</h1>
<button onclick="throwException()">点击触发异常</button>
<script>
function throwException() {
// 这里故意引发一个异常
var num = 1 / 0;
}
</script>
</body>
</html>
```
在这个页面上,我们有一个按钮,点击后会引发一个`ArithmeticException`。
**2. 定义异常处理页面(error.jsp)**
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java"
pageEncoding="UTF-8" errorPage="error.jsp" isErrorPage="true" %> <!-- 指定这是一个错误页面 -->
<!DOCTYPE html>
<html>
<head>
<title>Error Page</title>
</head>
<body>
<h1>抱歉,发生了错误:</h1>
<%@ page import="javax.servlet.jsp.jstl.core.JSTLCoreException" %> <!-- 引入异常处理包 -->
<% try {
exception.printStackTrace(); // 输出异常堆栈信息
} catch (JSTLCoreException e) { %> <!-- 使用catch处理异常 -->
<p>无法获取异常详细信息,请联系管理员。</p>
<% } finally { %> <!-- 可选:清理资源或提供通用信息 -->
<p>错误已记录并上报。</p>
<% } %>
</body>
</html>
```
在这个错误页面上,我们使用了`exception`隐式对象来获取和显示引发的异常信息。如果`try-catch-finally`块内有其他的异常,它们会被这个特定的`catch`块捕获。
**相关问题--:**
1. 如何在Spring MVC中设置全局异常处理器?
2. Web应用中的异常一般分为哪几种类型?
3. 在处理异常时,如何优雅地隐藏内部细节并向用户显示友好的错误信息?
阅读全文