我已经完成了我的程序(java)。这是一个简短而简单的求职面试程序。我通过抛出自定义异常来处理不正确的输入格式等问题。这是最好的方法吗?还是我应该写一份打印声明?
只有由其他代码处理异常时,异常才有用。
如果你正在编写一个可重用的库,那么你应该抛出一个异常
没有什么比调用将错误记录到控制台的第三方库而不是告诉代码更令人沮丧的了。
然而,如果您正在编写一个独立的实用程序,那么打印友好的错误消息比丑陋的堆栈跟踪要好。
最灵活的方法是编写抛出异常的可重用代码,然后在main()
(或独立部分的其他地方)中添加catch
块,以打印友好消息。
- 如果处理内联格式不正确,代码可读吗?如果是,则抛出异常并在其他地方进行处理
- 您是否能够在解析时正确处理不正确的格式,或者某个更通用的方法/类/模块实际上正在调用您的例程,并应该决定该怎么做?如果是后者,则->抛出异常
总的来说,这取决于情况。如果你能"内联"处理这种特殊情况,你就能做到(确保它可读)。如果不是,则抛出异常。
这里有一个关于异常最佳实践的好参考。你应该确保你遵循这些。
在您的特定情况下(根据您提供的详细信息),用户可能会上传/选择数据不正确的文件。您的程序应该通过捕捉任何基本的Java运行时问题并向用户返回信息(不是"线程中的异常…",而是用户更可读的信息)来处理这一问题。如果你正在检查这些字母字符,那么你应该只处理它(向用户发出错误),而不抛出异常——除非这真的是你想要的行为。
当程序不能以正常正确的方式工作时,会导致异常。
当您从j2se发展到j2ee时,异常会变得更加复杂,并且数量会增加。
对于独立应用程序
- 如果您的应用程序只是一个非常简单的计算器,那么您可能会完全忘记异常,因为您的用户输入将被过滤,少数异常之一将是除以零
- 如果你的应用程序是一个简单的实用工具,比如截屏,那么如果你的文件无法保存(文件i/o处除外),那么你所需要做的就是终止所有任务,并向用户显示一些错误消息
- 对于示例2的高级项目,您需要将图像保存在临时文件中,并在问题得到纠正后执行文件保存
对于企业规模和分布式应用程序这里涉及交易(相互关联的活动)。在这里,有时还需要向用户发送一条简单的消息,并处理(对相关事务进行必要的更改)异常
-
如果应用程序分布在许多国家/地区,那么一个牵引点中的异常需要在另一个国家/地区的另一个服务器中进行更改,这需要可选地合并使用JMSneneneba API(应用程序内部消息发送)的某些东西
-
JPA(java持久性api)在发生异常时隐式回滚数据库,并为相关事务提供了这样做的便利。但是回滚仍然只影响数据库,而不影响实例变量(对象值)
在任何时候,你都不想让用户读取你的确切堆栈跟踪,它在行号处显示错误。。。。。