在Java ME中替换异常原因

时间:2010-04-16 01:28:07

标签: java-me

在Java SE中,可以使用initCause设置异常的原因,以避免在捕获和重新抛出异常时丢失有关错误的信息。是否可以在Java ME中执行相同的操作?

1 个答案:

答案 0 :(得分:0)

扩展Exception类很容易实现:

public class OperationFailedException extends Exception{
    public Exception cause;
    public OperationFailedException(String string, Exception ex) {
        super(string);
        cause=ex;
    }

    public void printStackTrace(){
        super.printStackTrace();
        System.err.println("\nCaused by:\n");
        cause.printStackTrace();
    }
}

此异常对于隐藏基础异常很有用,例如当我们想要避免依赖性时或者当我们想要避免强制调用者处理太多类型的异常时。我通常还会创建此类的一个版本,扩展RuntimeException以包装我想要取消选中的异常