【发布时间】:2011-05-19 22:04:15
【问题描述】:
我在代码的正常执行中给一个字符串变量一个值,但是如果发生异常我会给它另一个值,问题是在catch块中这个值仍然和我首先分配的一样 .
这是我的代码,首先我在 try 块中分配页面值“addUser”,然后在 catch 中给它“ErrorPage”值,我将 http 请求中的页面值发送到 forword 方法,并在其中打印值页。 我在执行代码时导致错误,我希望它通过 catch 块,并且确实如此,但是当它将页面值发送到 forword 函数时,页面的值是“addUser”而不是“ErrorPage”虽然我分配它到“ErrorPage”!!
String page = "addUser";
try {
// ...
request.setAttribute("page", page);
forward(request, response);
} catch (SQLException e) {
page = "ErrorPage";
request.setAttribute("page", page);
forward(request, response);
}
这里是前导函数
String page = request.getParameter("page");
System.out.println("page is " + page); // each time it prints addUSer
有人可以帮忙吗?并提前谢谢。
【问题讨论】:
-
阅读:en.wikipedia.org/wiki/Don't_repeat_yourself 已经可以消除很多了。
-
那不会编译。您在 try 块之前在本地定义
page,然后在 try 块内再次重新定义它。那会产生一个编译错误,所以你给我们的代码对于演示这个问题是没有用的。 -
@Mark Peters-我在这里重写了我的代码,我的代码非常大,我只是给你一个我遇到的问题的快照,但是感谢这个注释。
标签: servlets parameters attributes parameter-passing