我应该抛出异常还是在程序中打印出错误声明?

时间:2013-09-01 03:25:24

标签: java styles

我的程序正常运行并完成(java)。这是一个简短易用的面试计划。通过抛出自定义异常来处理不正确的输入格式之类的东西。这是最好的方法,还是我应该做一个印刷声明?

4 个答案:

答案 0 :(得分:4)

例外情况仅在其他代码处理时才有用。

如果您正在编写可重用的库,那么您应该抛出异常 没有什么比调用第三方库将记录错误记录到控制台而不是告诉你的代码更令人沮丧。

但是,如果您正在编写一个独立的实用程序,那么打印友好的错误消息比使用难看的堆栈跟踪更好。

最灵活的方法是编写抛出异常的可重用代码,然后在catch(或独立部分的其他位置)中添加main()块来打印友好消息。

答案 1 :(得分:1)

  • 如果处理不正确的内联格式是代码可读吗?如果是这样 - 如果没有 - 很好 - 抛出异常并在别处处理
  • 您是否能够在解析它的地方正确处理不正确的格式,或者某些更通用的方法/类/模块实际上是在调用您的例程并且应该决定该怎么做?如果是后者 - >抛出异常

一般来说 - 这取决于。如果你能处理这种“内联”的特殊情况 - 你可以这样做(确保它是可读的)。如果不是 - 抛出异常。

答案 2 :(得分:1)

这是exception best practices的一个很好的参考。你应该确保你遵循这些。

在您的特定情况下(根据您提供的详细信息),用户可以上传/选择包含错误数据的文件。您的程序应该通过捕获任何基本的Java运行时问题并将信息返回给用户来处理(不是“线程中的异常......”,而是对用户更具可读性的东西)。如果你正在检查这些字母字符,那么你应该只处理它(给用户一个错误)而不抛出异常 - 除非这确实是你想要的行为。

答案 3 :(得分:0)

当程序无法正常工作时,会出现例外情况。

当你从j2se演变为j2ee时,异常变得更加复杂并且数量会增加。

对于独立应用

  1. 如果您的应用程序只是一个非常简单的计算器,那么您可能会完全忘记异常,因为您的用户输入将被过滤,少数例外之一将除以零
  2. 如果您的应用程序是一个简单的实用工具,例如屏幕截图,那么如果您的文件无法保存(文件i / o中的例外),那么您只需终止所有任务并向用户说出一些错误消息
  3. 对于示例2的高级项目,您需要将图像保存在临时文件中,并在问题解决后执行文件保存
  4. 适用于企业扩展和分布式应用程序 这里涉及交易(相互关联的活动)。在这里,有时还需要向用户发送一条简单的消息并处理(需要更改相关交易)异常!

    1. 如果应用程序在许多国家/地区分发,那么一个牵引力中的异常需要在另一个国家/地区的另一个服务器中进行更改,这需要可选地合并使用JMS API的某些内容(在应用程序内部发送消息)

    2. JPA(java persistence api)在异常事件中隐式回滚数据库,并为相互关联的事务提供了这样做的工具。但仍然回滚仅影响数据库而不影响实例变量(对象值)

    3. 并且在任何时候您都不希望用户读取您在行号中显示错误的确切堆栈跟踪.....