如何在java中抛出异常

时间:2013-10-23 10:29:27

标签: java

我有一个循环运行记录数量,在特定条件下,我需要将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";

    } 

在这里抛出异常我错过了什么?

2 个答案:

答案 0 :(得分:1)

删除返回值:

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

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

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

答案 1 :(得分: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)

这解决了我的问题。