java异常信息如何返回给Servlet

我现在后台虽然能够判断错误,但是毕竟要将这个错误返回到Servlet。请问,Servlet如何接受调用的函数抛出的异常??或者说Servlet调用的函数要怎么返回这个异常... 我现在后台虽然能够判断错误,但是毕竟要将这个错误返回到Servlet。请问,Servlet如何接受调用的函数抛出的异常??或者说Servlet调用的函数要怎么返回这个异常?? 展开
 我来答
wh猎人
推荐于2018-04-12 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:650万
展开全部

通过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
2013-04-10 · 超过22用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:50.1万
展开全部
你好,这个问题可以这么解决:
1.首先在你要调用的函数抛出异常。(函数后throws exception)
2.在你的servlet中调用该函数的时候,捕获异常(函数嵌套在try catch中)。
try{
调用的函数

}catch(){
request.setParamter("info","异常信息");

}
3.在你前台页面输出异常。 <%== request.getParamter("info")%>

希望可以帮到你!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
monica10617
2013-04-10
知道答主
回答量:5
采纳率:0%
帮助的人:8358
展开全部
1.调用的方法会抛出异常
2.在servlet里调用1中的方法时,加上try catch
3.将异常信息放置到request中
4.在jsp页面就可以读取request中的异常信息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
229323989
2013-04-10 · TA获得超过282个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:137万
展开全部
比如说有个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("用户名或密码不正确");
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z253005528
推荐于2016-09-01 · TA获得超过101个赞
知道答主
回答量:90
采纳率:100%
帮助的人:43.5万
展开全部
最简单的做法
操作数据库的代码改成这样,方法也要声明抛出异常

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");

}
}

以上就可以了,但是实际开发项目里比较合理的做法是自己定义一个异常类,把异常信息封装抛出,抛出到需要用到异常信息的地方。
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式