EXCEPTIONS
文章平均质量分 52
专业搬砖工
这个作者很懒,什么都没留下…
展开
-
Checked and Unchecked Exceptions in Java
Checked exceptions: exceptions that are checked at compile time. 所以需要在方法上throws异常,或者用try-catch来处理异常,不然编译器会报错。Checked exceptions表示在正常work flow之外的错误。 // throws keyword private static void checkedExceptionWithThrows() throws FileNotFoundException { File f原创 2021-03-28 22:18:14 · 87 阅读 · 0 评论 -
[Effective Java] Item 61: Throws exceptions appropriate to the abstraction
当你写一个方法的时候,propagate一个由于invoke某个方法抛出的异常,然而这个异常对于使用你这个方法的client是不合理的。 很简单的例子,一个网页,你按了某个键,读取用户信息,然而这个读取的方法propagate底下数据库的异常,这样对于用户你而言是没有意义的,你也会很困惑什么是数据库错误。 而且,万一你需要改变这个方法的应用,你不从数据库读取数据,而从文件系统中读取,那么你还要在下次release中修改你方法中声明的异常。 为了avoid这个问题, ...翻译 2021-03-27 23:57:55 · 80 阅读 · 0 评论 -
[Effective Java] Item 60: Favor the use of standard exception
Commonly reused unchecked exceptions provided by Java platform libraries - 复用这些大家都知道的exceptions,好处就是大家都熟悉,容易理解,也知道这些异常所代表的用途。 The most commonly reused exceptions Exceptions Occasion for Use Example IllegalArgumentException Non-null parameter value翻译 2021-03-21 00:46:09 · 69 阅读 · 0 评论 -
[Effective Java] Item 59 Avoid unnecessary use of checked exceptions
Checked exceptions是要在合理使用API时无法避免异常,并且使用者也能采取有用的措施的情况下使用的。 如果不满足这两个条件,而且使用者其实也没有什么更好的办法去处理的话,unchecked exception可能会更适合。 我们来看CloneNotSupportedException,这个异常其实是因为,clone方法invoke了一个没有implement Cloneable这个Interface的object上而抛出的异常,这里其实有没有什么特别能处理的方法,然而API当时设计成了Che翻译 2021-03-20 21:44:24 · 69 阅读 · 0 评论 -
[Effective Java] Item 58 Use checked exceptions for recoverable conditions and runtime exceptions ..
Use checked exceptions for recoverable conditions and runtime exceptions for programming errors 从种类上分:checked exceptions,runtime exceptions, errors Checked exceptions use checked exceptions for recoverable conditions 通常你可以使用try-catch来处理异常,或者在外层的方法上declare翻译 2021-03-20 16:46:39 · 73 阅读 · 0 评论 -
[Effective Java] Item 57: Use exceptions only for exceptional conditions
// Do not use this hideous code for iteration over a collection try{ Iterator<Foo> i = collection.iterator(); while(true){ Foo foo = i.next(); ... } } catch(NoSuchElementException e){ } 上面的代码,并不是为了处理一些exception的情况,只是因为collection没有元素的时候,next()翻译 2021-02-23 23:54:07 · 79 阅读 · 0 评论