易截截图软件、单文件、免安装、纯绿色、仅160KB

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)
{


相关文档:

java编译静态常量的机制

java虚拟机编译机制,静态常量在编译后,成为了常量,而不是原先的代码,例如:
有一个类
Contant.java
里面有一些静态常量
public static final String GONGDAN = "gongdan@ceopen.cn";
public static final String ICT = "ictnetwork@ceopen.cn";
然后在程序中有使用这些常量,Contant.GONGDAN
在那些程序编译后的 ......

jsp常见错误java.lang.ClassNotFoundException - 500

500错误,classnotfound异常,代码没有问题,数据库也没问题,打了补丁,装了驱动,但是在TOMCAT上找不到那个驱动而引发的错误。。。
解决办法:首选项设置里,MyRclipse->J2EE Project->Web Project->Deployment勾上那三个驱动。 ......

Java错误处理大集合


0、 需要标识符
a) 不在函数内
1、 非法表达式开始
b) 可能:丢失括号 .
2. no data found
a) 可能:setInt(1,100)中,没有100这个值
3. 找不到符号
a) 可能:没导入包
4. 指定了无效URL
a) 可能:数据库名或IP错误,即连接出错
5. 类路径没有找到
a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriv ......

java小技巧(一)

在很多数据库中,“性别”这一字段是用于int类型存储的,如用0表示“女”,1表示“男”。使用ResultSet对象rs接收查询数据,在获取数据时时,rs.getString()方法和rs.getInt()方法获取的仍然是0(区别在于String类型或是int类型)。而在实际应用时,我们更希望获得的数据是直观地显示“男 ......

JAVA的参数传递机制

参数传递机制主要有两种:值调用(call-by-value),引用调用(call-by-reference)。
值调用(call-by-value):会对实在参数求值(如果是表达式)或拷贝(如果是变量)。这些值被放在属于被调用过程的响应形式参数的内存位置上。
引用调用(call-by-reference):实在参数的地址作为相应的形式参数的值被传递给被调用者。在被调 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号