java异常信息如何返回给Servlet
我现在后台虽然能够判断错误,但是毕竟要将这个错误返回到Servlet。请问,Servlet如何接受调用的函数抛出的异常??或者说Servlet调用的函数要怎么返回这个异常...
我现在后台虽然能够判断错误,但是毕竟要将这个错误返回到Servlet。请问,Servlet如何接受调用的函数抛出的异常??或者说Servlet调用的函数要怎么返回这个异常??
展开
展开全部
通过throw语句可以将异常抛出到外层。
异常一般分两类:check 和 uncheck。他们的主要区别是抛出uncheck异常时,无需在方法名称上声明异常的类型。
在实际业务中,如果把所有异常统一在servlet中处理,可以这样做:
// 定义一个uncheck异常
public class AppException extends RuntimeException{...}
// 在业务代码中抛出AppException
public class MyLogic{
public void someLogic(){
throw new AppException();
}
}
// 在servlet的doGet、doPost等方法里catch并处理
...........
try{
......
}catch(AppException ex){// 业务异常,需要进行一些业务处理,比如跳转等
ex.printStackTrance();
}catch(Throwable ex){ // 未受控异常,可能是代码问题,需要检视代码
ex.printStackTrance();
}
...........
展开全部
你好,这个问题可以这么解决:
1.首先在你要调用的函数抛出异常。(函数后throws exception)
2.在你的servlet中调用该函数的时候,捕获异常(函数嵌套在try catch中)。
try{
调用的函数
}catch(){
request.setParamter("info","异常信息");
}
3.在你前台页面输出异常。 <%== request.getParamter("info")%>
希望可以帮到你!
1.首先在你要调用的函数抛出异常。(函数后throws exception)
2.在你的servlet中调用该函数的时候,捕获异常(函数嵌套在try catch中)。
try{
调用的函数
}catch(){
request.setParamter("info","异常信息");
}
3.在你前台页面输出异常。 <%== request.getParamter("info")%>
希望可以帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.调用的方法会抛出异常
2.在servlet里调用1中的方法时,加上try catch
3.将异常信息放置到request中
4.在jsp页面就可以读取request中的异常信息
2.在servlet里调用1中的方法时,加上try catch
3.将异常信息放置到request中
4.在jsp页面就可以读取request中的异常信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如说有个servelt叫:LoginServelt,对应的后台是UserService,方法是loginValidate();,有个异常类叫LoginException,于是是这样的:
LoginServelt{
doGet() {
try {
userSerivce.loginValidate();
} catch (LoginException e) {
System.out.println("发生登陆异常"+e.printStackTrace(););
}
}
}
class UserService{
public void loginValidate(String username, String password) throws LoginException {
if (用户名或密码不正确) {
throw new LoginException("用户名或密码不正确");
}
}
}
LoginServelt{
doGet() {
try {
userSerivce.loginValidate();
} catch (LoginException e) {
System.out.println("发生登陆异常"+e.printStackTrace(););
}
}
}
class UserService{
public void loginValidate(String username, String password) throws LoginException {
if (用户名或密码不正确) {
throw new LoginException("用户名或密码不正确");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最简单的做法
操作数据库的代码改成这样,方法也要声明抛出异常
try{
//操作数据库代码
}catch(Exception e){
throw e;
}
servlet里在调用方法的地方直接捕获,然后判断是何种异常
try{
调用方法的地方
}catch(Exception e){
if(e.getMessage().indexOf("U_TEACHER")>0){
System.out.println("是关于违反Oracle一个唯一性约束U_TEACHER");
}else if(e.getMessage().indexOf("U_ROOM")>0){
System.out.println("是关于违反Oracle一个唯一性约束U_ROOM");
}
}
以上就可以了,但是实际开发项目里比较合理的做法是自己定义一个异常类,把异常信息封装抛出,抛出到需要用到异常信息的地方。
操作数据库的代码改成这样,方法也要声明抛出异常
try{
//操作数据库代码
}catch(Exception e){
throw e;
}
servlet里在调用方法的地方直接捕获,然后判断是何种异常
try{
调用方法的地方
}catch(Exception e){
if(e.getMessage().indexOf("U_TEACHER")>0){
System.out.println("是关于违反Oracle一个唯一性约束U_TEACHER");
}else if(e.getMessage().indexOf("U_ROOM")>0){
System.out.println("是关于违反Oracle一个唯一性约束U_ROOM");
}
}
以上就可以了,但是实际开发项目里比较合理的做法是自己定义一个异常类,把异常信息封装抛出,抛出到需要用到异常信息的地方。
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询