如何在java中引发异常

如何在java中引发异常,java,Java,我有一个循环运行记录数,在特定条件下,我需要向输出响应添加一个errorCode和errorMessage,如下所示 addErrorMessage(Constants.ZERO_AMPU、msg、infoRow),方法在其中设置错误代码和消息 我已经定义了用户定义的异常以在相同条件下抛出异常,这样它就不会在所有记录中循环 if (ampu.intValue() == 0){ def message = "ampu value is zero"

我有一个循环运行记录数,在特定条件下,我需要向输出响应添加一个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";

    } 

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

删除返回值:

public Ampu(){}
        message = "ampu value is zero"
        Constants.addErrorMessage(Constants.ZERO_AMPU, message, infoRow)
} 
因为异常仍然是一个对象,所以它应该有一个有效的构造函数


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

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

class Ampu extends Exception{
        public Ampu(String message){
             super(message);
        }
}
}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)
并使用

throw new Ampu("ampu is zero");
并捕获以下异常

class Ampu extends Exception{
        public Ampu(String message){
             super(message);
        }
}
}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)

这解决了我的问题。

您确定有循环吗?你的意思是在时编写
,而不是在
时编写
?“def message”你用哪种语言编写?我认为这段代码在任何语言中都无效。这是groovy吗?对不起,这是一个groovy脚本,我使用用户定义的异常实现了它