我正在建造我的第一个Java图书馆。代码使用了大量的IO方法,因此可以想象有大量的异常需要捕获。但我在想,我应该抛出例外吗?我的意思是,捕捉异常当然是应用程序编写者的工作。因为即使我抓到了它们,我也不知道应用程序在发生这种情况时会做什么。
我应该抛出IOExceptions等,还是应该在库代码中捕获它们?
您应该只在可以的情况下处理异常--也就是说,如果您的库对如何处理异常有足够的知识的话。
下面是一个应该处理异常的示例:
下面是一个不应处理异常的示例
如果您要抛出一个异常给用户,捕获并重新抛出异常通常是一个很好的实践--这使您能够将它包装在自己的自定义异常类中,并可能添加额外的消息/细节等。
一般来说,请记住,如果您想编写一个好的软件组件,那么它应该具有fail-fast行为。如果有疑问,您应该失败,并让用户知道(通过一个例外),而不是试图继续在一个不健全的基础上。
然后我把它用作: 但是最后一行代码没有捕获任何异常,我的代码给出运行时异常并停止。你能解释为什么会发生这种情况,如果可能的话,如何修复它吗?
本文向大家介绍.NET Framework 捕捉异常,包括了.NET Framework 捕捉异常的使用技巧和注意事项,需要的朋友参考一下 示例 在特殊情况下,代码可以并且应该引发异常。例如: 尝试阅读流的末尾 没有访问文件的必要权限 尝试执行无效的操作,例如被零除 从Internet下载文件时发生超时 调用方可以通过“捕获”它们来处理这些异常,并且仅应在以下情况下进行: 它实际上可以解决特殊情况
我有一些消息生产者正在使用ActiveMQ发送有关某些事件的JMS消息。但是,与ActiveMQ的连接可能不会一直处于关闭状态。因此,事件被存储,当建立连接时,它们被认为是读取和发送的。这是我的代码: 我想创建某种将在建立连接并处理未发送事件时调用的Application ationEventListener。我浏览了JMS、Spring框架和ActiveMQ留档,但找不到任何线索如何将我的侦听器
问题内容: 我听说捕捞被认为是不好的作法。我当前正在加载一个不能保证在PATH上的.dll,并希望在不存在的情况下切换到用户配置的位置。 有更好的方法吗?还是在这里接受是可以接受的? 问题答案: 除了提供有关如何从技术上解决问题的建议以外,我想花点时间解释一下为什么它首先被认为是“不好的做法”。 让我们从澄清什么是类开始。 在Java中,将引发错误和异常(它们是主要类型)。通过使用关键字可以完成上
在节点中。在js服务器上,捕获SIGTERM和捕获SIGINT有什么区别吗? 我认为进程不应该能够防止SIGINT关闭? 我是否能够捕获两个信号并阻止退出?我的实验表明答案是肯定的,但从我所读到的内容来看,SIGINT总是假设关闭一个进程。 或者我把SIGINT和SIGKILL混淆了?也许SIGKILL是我无法恢复的信号? 捕捉这些信号当然可以让我优雅地关机: 我想我把SIGINT和SIGKILL
本文向大家介绍Java多线程之多线程异常捕捉,包括了Java多线程之多线程异常捕捉的使用技巧和注意事项,需要的朋友参考一下 一:为什么要单独讲多线程的异常捕捉呢? 先看个例子: 在run中手动抛出了一个运行时异常,在main中启动线程,catch语句块中捕捉下异常,捕捉到打印一句话。运行结果如下图: 发现异常被抛到了控制台,没有打印catch块中的语句。 结论:多线程运行不能按照顺