Java 我应该在这种情况下使用异常吗?

Java 我应该在这种情况下使用异常吗?,java,exception,Java,Exception,假设我有一个主类,它处理另一类的HashMap,我想使用serializable接口将该类存储在文件中 我们可以将主类称为管理器,我想保存在文件中的类可以称为数据 现在,管理器类有一种方法可以将数据类的实例保存到文件中(所有数据的实例都存储在管理器类的HashMap中)。实例的名称由用户输入,因此它可能不存在 在这种情况下我该怎么办?检查实例是否存在,如果不存在,我将返回false,或者生成一个返回void并在实例不存在时抛出异常的函数?我应该在这种情况下使用异常吗?异常会对程序的性能产生很大影

假设我有一个主类,它处理另一类的HashMap,我想使用serializable接口将该类存储在文件中

我们可以将主类称为管理器,我想保存在文件中的类可以称为数据

现在,管理器类有一种方法可以将数据类的实例保存到文件中(所有数据的实例都存储在管理器类的HashMap中)。实例的名称由用户输入,因此它可能不存在

在这种情况下我该怎么办?检查实例是否存在,如果不存在,我将返回false,或者生成一个返回void并在实例不存在时抛出异常的函数?我应该在这种情况下使用异常吗?异常会对程序的性能产生很大影响吗(因为每次抛出异常时,我们都必须创建一个新对象


谢谢。

如果您无法将文件写入磁盘,但磁盘已满,则会使用例外情况

if
用于检查分母是否为零,以及要求用户输入另一个数字


异常
if
更昂贵,因为当引发异常时,它会创建stacktrace以回溯


因此,如果您可以采取任何措施避免错误,请使用
if
。如果不能,那么使用
exception

当异常进一步破坏程序逻辑时,需要抛出异常

如果实例的存在对未来的操作非常重要,那么最好抛出一个异常。否则,该方法可以返回一个
布尔值
,没有任何异常

异常会对程序的性能产生很大影响吗

不,他们不会。无论如何,你不应该为此担心。

HashMap
做的事情。返回与键关联的旧值,如果没有,则返回null。您不需要异常。@EJP在这种情况下,我不想返回对任何对象的引用。由于我想将对象保存在内存中,如果对象保存成功,函数将返回true;如果对象不存在或发生IOException,函数将返回false。您可能不应该过多地考虑性能,而应该考虑异常是适当的设计和实现选择的条件。看看标准API本身,它们是否按照您描述的方式使用异常?等