Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向调用方方法发送成功消息?_Java_Spring_Hibernate - Fatal编程技术网

Java 如何向调用方方法发送成功消息?

Java 如何向调用方方法发送成功消息?,java,spring,hibernate,Java,Spring,Hibernate,我有一个方法,用于在数据库中保存联系人表单,如下所示,如果出现问题,它会抛出一个异常,并将其发送回该方法的调用方 我不确定我所做的是否是向该方法的调用方保证一切顺利的最佳方式 public boolean saveContact(Contact contact)throws HibernateException{ currentSession().save(contact); return true; } 没有异常应该是成功的标志。也就是说,如果没有抛出异常,则保存成功。因

我有一个方法,用于在数据库中保存联系人表单,如下所示,如果出现问题,它会抛出一个异常,并将其发送回该方法的调用方

我不确定我所做的是否是向该方法的调用方保证一切顺利的最佳方式

public boolean saveContact(Contact contact)throws HibernateException{  
    currentSession().save(contact);
    return true;
}

没有异常应该是成功的标志。也就是说,如果没有抛出异常,则保存成功。因此,如果只调用save,而不返回true,应该会更好

但是,在代码中有一个布尔指示符仍然很好


太支持了

没有异常应该是成功的标志。也就是说,如果没有抛出异常,则保存成功。因此,如果只调用save,而不返回true,应该会更好

但是,在代码中有一个布尔指示符仍然很好


使用此方法时,支持太多

要好得多

public void saveContact(Contact contact) {  
    currentSession().save(contact);
}

使用这种方法更好

public void saveContact(Contact contact) {  
    currentSession().save(contact);
}

不要将布尔标志与异常一起使用问问你自己,打电话的人是否可以期待其他事情,如
true
。答案是否定的,因为在任何其他情况下都会抛出异常。所以你总是会回到现实。这没有提供任何有用的信息。更糟糕的是,它可能会导致一种非常混乱的情况,即返回
false
,但没有抛出异常(在您的示例中不会发生这种情况,因为您的示例非常简单,但我只想详细说明一些情况)

还要注意,Hibernate本身不会通过其
currentSession().save(…)
方法返回任何东西!我强烈建议遵循这种模式


还要注意,方法返回的所有类型的布尔标志、错误代码或状态都与抛出异常相反。您不应该混合使用这两个概念(在某些情况下不要抛出异常,在某些情况下不要返回布尔标志)

不要将布尔标志与异常一起使用问问你自己,打电话的人是否可以期待其他事情,如
true
。答案是否定的,因为在任何其他情况下都会抛出异常。所以你总是会回到现实。这没有提供任何有用的信息。更糟糕的是,它可能会导致一种非常混乱的情况,即返回
false
,但没有抛出异常(在您的示例中不会发生这种情况,因为您的示例非常简单,但我只想详细说明一些情况)

还要注意,Hibernate本身不会通过其
currentSession().save(…)
方法返回任何东西!我强烈建议遵循这种模式



还要注意,方法返回的所有类型的布尔标志、错误代码或状态都与抛出异常相反。您不应该混合使用这两个概念(在某些情况下不要抛出异常,在某些情况下不要返回布尔标志)

这是正确的方法。调用方只能根据异常决定纠正措施。@SivaKumar您的意思是我应该发送customSuccessException吗?还是直接返回true以获得成功?@DanielNewtown您正在使用的发送booean的方法是一个好方法。我不理解布尔返回的必要性。如果一切顺利,就没有例外,所以你知道没有例外是好的。布尔值表示有两种可能的结果:true和false。在这里,您永远不会返回false,因此不需要布尔值。@WimDeblauwe是否有需要的情况?这是正确的方法。调用方只能根据异常决定纠正措施。@SivaKumar您的意思是我应该发送customSuccessException吗?还是直接返回true以获得成功?@DanielNewtown您正在使用的发送booean的方法是一个好方法。我不理解布尔返回的必要性。如果一切顺利,就没有例外,所以你知道没有例外是好的。布尔值表示有两种可能的结果:true和false。在这里,你永远不会返回false,因此不需要布尔值。@WimDeblauwe是否有我需要的情况?为什么?你能详细解释一下吗?丹尼尔·纽顿,请看一个精彩的解释@ThomasUhrig@VirajNalawadeHibernateException是RuntimeException.Daniel Newtown的后代,如果您想看到使用Hibernate的一致方法,可以参考为什么?你能详细解释一下吗?丹尼尔·纽顿,请看一个精彩的解释@ThomasUhrig@VirajNalawadeHibernateException是RuntimeException.Daniel Newtown的后代,如果您想看到使用Hibernate的一致方法,可以参考(y)正确的设计。@thomashrig非常棒的方法解释感谢您的解释,hibernate保存方法返回:生成的标识符。你能给我一个例子,我需要使用布尔法兰吗?我有点困惑。你的意思是在这种情况下,如果没有抛出任何东西,我会认为一切都很好吗?通过不混合两个概念,您指的是整个应用程序还是特定方法?@DanielNewtown如果示例中没有引发异常,则可以确保保存操作成功。通过不混合两个概念,我指的是一种特定的方法,如上面的方法和整个应用程序。总是使用异常来处理应该有效但由于某些意外情况而不能这样做的事情。它将使您的代码更干净。错误代码可能有助于API或隐藏真正的原因。但在你的应用程序中,你可以选择例外。(IMHO)@thomashrig在这种情况下,我应该始终坚持例外。如果没有抛出任何内容,我应该将其视为成功的处理,对吗?极好(y)正确的设计。@Thomashrig对该方法的精彩解释感谢您的解释,hibernate save方法返回:生成的标识符。你能给我一个例子,我需要使用布尔法兰吗?我有点困惑。你是说在这方面