flex请求中抓取JAVA异常信息
如何获取LCDS请求过程中JAVA抛出来的Exception呢? 当flex通过请求对象请求服务端的时候,请求成功会发mx.rpc.events.ResultEvent事件,遇到服务端异常或其他非200的HTTP状态码(例如404,403)则会发mx.rpc.events.FaultEvent事件,但请求失败是因为什么原因呢?因为不同的原因可能导致界面上不同的处理操作,最简单的办法就是从服务端的异常中获取,我们可以把这些信息放在异常中,由前端FLEX去读取并处理;
FaultEvent事件中有一个message属性,是一个类型为mx.messaging.messages.ErrorMessage的消息类,该类中有一个rootCause属性,异常的相关信息都放在这个对象中,先建一个自定义的JAVA异常:
package com.hanover.ml.servicebroker;
public class CustomException extends Exception {
private int errorCode;
private String errorDesc;
public int getErrorCode(){
return errorCode;
}
public void setErrorCode(int value){
errorCode = value;
}
public String getErrorDesc(){
return errorDesc;
}
public void setErrorDesc(String value){
errorDesc = value;
}
}
里面有两个属性,分别是errorCode和errorDesc,分别可以代表异常的种类和描述,然后我们在调用方法中抓取到所有异常并转成这个自定义的CustomException:
public void getExceptionTest() throws CustomException
{
try{
//function content
//逻辑异常
CustomException ce = new CustomException();
ce.setErrorCode(201);
ce.setErrorDesc("该记录已被删除");
throw ce;
}catch(NullPointerException ne){
CustomException ce = new CustomException();
ce.setErrorCode(101);
ce.setErrorDesc("type1 error desc");
throw ce;
}catch(Exception e){
CustomException ce = new CustomException();
ce.setErrorCode(101);
ce.setErrorDesc(e.getMessage());
throw ce;
}
}
接着在flex端的fault事件中获取异常信息:
public function fault(event:Object):void
{
var faultEvent:FaultEvent = event as FaultEvent;
var errorMessage:ErrorMessage = faultEvent.message as ErrorMessage;
if(errorMessage && errorMessage.rootCause)
{
相关文档:
500错误,classnotfound异常,代码没有问题,数据库也没问题,打了补丁,装了驱动,但是在TOMCAT上找不到那个驱动而引发的错误。。。
解决办法:首选项设置里,MyRclipse->J2EE Project->Web Project->Deployment勾上那三个驱动。 ......
private PreparedStatement pstmt;
String sql="INSERT INTO TABLE(id,名称,用户id,Stbid,MAC,用户状态,总次数,Ip地址,资料更新时间) " +
"VALUES(?,?,?,?,?,?,?,?,?)";
pstmt=connection.prepareStatement(sql);
pstmt.setString(1,array[0]);
......
首先明确一下:java里面只有值传递,引用传递只是一只误读而已。
来看一个例子:
public static void main(String[] args)
{
StringBuffer str1 = new StringBuffer("hello");
test(str1);
System.out.println("main : " + str1);
}
public static void test(StringBuffer s ......
JAVA开发者最常去的20个英文网站
1.[http://www.javaalmanac.com] – Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
2.[http://www.onjava.com] – O’Reilly的Java网站. 每周都有新文章.
3.[http://java.sun.com] – 官方的Java开发者网站 ......