java – 难得的时间低估检查和未检查的异常

前端之家收集整理的这篇文章主要介绍了java – 难得的时间低估检查和未检查的异常前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经阅读了关于这一点的一切,我仍然不明白如何使用检查和未检查的异常.我想我还不能把握这个概念.我读过StackOverflow,最好使用未经检查而不是检查的异常,但是 Eclipse强制我使用检查的异常,如FileNotFoundException(AFAIK,如果Eclipse强制我插入一个try / catch块,那是一个被检查的异常).我想知道,有没有办法翻译检查不加检查?这到底是什么?我不明白处理异常是什么.

我有这个例子,我真的很想知道如何处理(?)这个.这是一个被检查的例外,对吧?

public void readFile() {
    File foo = new File("./foo.bar");
    try {
        BufferedReader bufferedReader = new BufferedReader(new FileReader(foo));
    } catch (FileNotFoundException e) {
        // What should I do here?
    }
    getDataFromFile(bufferedReader);
}

我看到人们在这里做的各种各样的事情.有些打印堆栈跟踪,这是我通常做的,我没有看到它的问题.它给了我需要调试的信息.有些人忽略它们,我认为不应该这样做(我看到JNode OS引导程序忽略了异常).有些人只需在签名中添加throws声明.有些在这个东西中会引起更多的异常! (我想也许这是使用unchecked而不是检查手段?)

此外,如果你添加了throws声明,你将被迫进一步放入try / catch块,如果你有一个非常大的应用程序,这是不方便的.对不起,我只是无能为力.完全.我正在尝试学习优雅和优雅的设计,这是折磨我.

解决方法

未检查异常

这是一个例外,因为不应该首先发生的事情,因此是无法预料的.它处理只有在您的程序出现错误时才会出现的情况.

它是RuntimeException(它是Exception的一个子类)的子类,通常使用IllegalArgumentException,NullPointerException或IllegalStateException来实现

Unchecked runtime exceptions represent conditions that,generally
speaking,reflect errors in your program’s logic and cannot be
reasonably recovered from at run time.

检查异常

是可能发生的事情,因为与系统的其余部分的不可预见的情况.它不在你的直接控制之下,但不一定是一个bug,而是一个可能遇到的情况.

它是异常的子类.

From: Exceptions

在你的例子中,

文件不存在是您需要处理的情况,即使在生产代码中,如果存在某些条件(磁盘已满),也可能会发生这种情况.这使得它成为一个检查的异常.

处理例外:

Exceptions are intended towards providing a better user-experience. So
you should report the error to the user,and gracefully terminate if
you cannot continue.

>如果确实是您预期的情况,那么您应该可以通知用户该问题,如有必要,请优先终止,或继续下一步.>如果它是一个未经检查的异常,那么你最好的办法是告诉用户,而不是发生意外的错误,因为它不是首先发生的事情,而是将stacktrace报告给你.

猜你在找的Java相关文章