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来实现
检查异常 是可能发生的事情,因为与系统的其余部分的不可预见的情况.它不在你的直接控制之下,但不一定是一个bug,而是一个可能遇到的情况. 它是异常的子类. From: Exceptions 在你的例子中, 文件不存在是您需要处理的情况,即使在生产代码中,如果存在某些条件(磁盘已满),也可能会发生这种情况.这使得它成为一个检查的异常. 处理例外:
>如果确实是您预期的情况,那么您应该可以通知用户该问题,如有必要,请优先终止,或继续下一步.>如果它是一个未经检查的异常,那么你最好的办法是告诉用户,而不是发生意外的错误,因为它不是首先发生的事情,而是将stacktrace报告给你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |