差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:effective_java:creating_and_destroying_objects:prefer_try-with-resources_to_try-finally [2019/07/28 22:20] tony |
java:effective_java:creating_and_destroying_objects:prefer_try-with-resources_to_try-finally [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 26: | 行 26: | ||
} | } | ||
</code> | </code> | ||
- | 這個item要強調的是,使用try-with-resources會讓你的程式碼更精簡: | + | 這個item要強調的是,在Java7之後,使用try-with-resources會讓你的程式碼更精簡: |
<code java> | <code java> | ||
try( InputStream is = new FileInputStream(mConfigFilePath) ){ | try( InputStream is = new FileInputStream(mConfigFilePath) ){ | ||
行 34: | 行 34: | ||
} | } | ||
</code> | </code> | ||
- | + | 針對使用的說明,我之前已有[[java:basic:exception:try-with-resource|文章]]做分享。這種寫法除了讓你程式碼更精簡外,以上述例子來說,如果load與close都發生例外,是可以透過Exception的getSuppressed去取得這兩個Exception的callstack。\\ | |
- | + | \\ | |
- | + | 這種寫法也可以應用在stream的close,甚至可以做自己的AutoClose的Lock物件,避免忘記呼叫unlock的情況。 | |
===== Note ===== | ===== Note ===== | ||
Effective Java第三版Item 9。 | Effective Java第三版Item 9。 |