-1

我有一个针对记录数运行的循环,并且在特定条件下,我需要在输出响应中添加一个 errorCode 和 errorMessage,如下所示

addErrorMessage(Constants.ZERO_AMPU, msg, infoRow) 其中方法设置错误代码和消息。

我已经定义了用户定义的异常以在相同的条件下抛出异常,这样它就不会遍历所有记录

if (ampu.intValue() == 0){

            def message = "ampu value is zero"

            Constants.addErrorMessage(Constants.ZERO_AMPU, message, tariffOffer)
            Ampu a = new Ampu();
            throw a;
}

class Ampu extends Exception{
        public Ampu(){}
            def message = "ampu value is zero"
            Constants.addErrorMessage(Constants.ZERO_AMPU, message, infoRow)
            return "ampu value is zero";

    } 

我在这里抛出异常时缺少什么?

4

2 回答 2

1

删除返回值:

public Ampu(){}
        message = "ampu value is zero"
        Constants.addErrorMessage(Constants.ZERO_AMPU, message, infoRow)
} 

由于异常仍然是一个对象,它应该有一个有效的构造函数。

message应该定义为一个字符串(但它已经是一个字段所以不要声明它)。

于 2013-10-23T10:30:43.983 回答
0

我引入了一个新的用户定义异常,如下所示

class Ampu extends Exception{
        public Ampu(String message){
             super(message);
        }
}

并使用

throw new Ampu("ampu is zero");

并捕获了如下异常

}catch(Ampu a){
        Constants.debug ("Margin Calculator Error: " + a.getMessage())
        if (Constants.DEBUG) ex.printStackTrace()

        if (infoRow)
        {
        println 'in catch of AMPU...coming????'
        def msg = "ampu is zero"
        Constants.addErrorMessage(Constants.ZERO_AMPU, msg, infoRow)

这解决了我的问题。

于 2013-10-23T12:20:20.937 回答