我是一名 Java 开发人员,但我在软件架构方面还没有很多经验。
我有以下情况。我正在创建一个批处理应用程序(运行到 shell 中的命令行应用程序),因此它是从定义到 Main() 类中的 main() 方法启动的。
在这个 main() 方法中,我创建了一些其他类的对象实例来执行某些操作(例如在数据库上执行查询、创建 PDF 等),因此应用程序在这里可能会失败。
如果应用程序没有失败(一切都按预期进行),main() 方法以退出代码 = 0 结束。
我希望如果应用程序失败(在任何时候)返回的退出代码是 -1。
所以现在我不知道该如何处理这种情况。
例如,如果进入 main() 方法,我有这样的东西:
// Create DAO object:
FatturaDAO fatturaDAO = new FatturaDAO(conn);
listaFatture = fatturaDAO.getListaFatturePDF(partitaIVA);
我在其中创建并使用了一个 DAO 对象。现在考虑 FatturaDAO 对象发生故障的情况(例如连接丢失并引发异常)。
如何正确处理这种情况?
我有 2 个想法,但我不知道什么是最好的解决方案:
我在我的代码中放置了一些 try catch block ,因此如果出现问题,它会进入处理它的 catch block 执行:
System.exit(-1);
如果某事失败,它会进入 catch block ,而不是退出并抛出一个自定义异常,该异常返回到执行以下操作的 main() 方法:
System.exit(-1);
或者我可以用其他更聪明的方式处理这些情况吗?
最佳答案
2. If something fail it enter into the catch block that instead of exit
throws a custom exception that goes back until the main() method that perform:
如果您在 main()
中处理异常,那么您必须在父级具有错误处理代码。如果有任何变化不需要检查其他函数,你只需要在其他函数上添加through
关键字并在main()
中处理异常并返回所需的类型。
在大多数 J2EE 应用程序中,我们在 Controller
部分处理异常,而不是 DAO
或 Service
层。发生异常时更容易向用户传递消息。
关于java - 如何将失败情况处理成一个简单的 Java 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28738991/