{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2020-10-12--001--09","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"b027c0df-8798-5fee-baf2-abd73d2f951f","html":"<h2>아이템77) 예외를 무시하지 말라</h2>\n<ul>\n<li>API 설계자가 메서드 선언에 예외를 명시하는 까닭은, 그 메서드를 사용할 때 적절한 조취를 취해달라고 말하는 것이다.</li>\n<li>예외는 문제 상황에 잘 대처하기 위해서 존재하는데 catch 블록을 비워두면 예외가 존재할 이유가 없어진다.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span> \n  <span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span><span class=\"token punctuation\">.</span> \n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">SomeException</span> e<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token punctuation\">}</span></code></pre></div>\n<h4>예외를 무시해야 할 떄</h4>\n<ul>\n<li>FileInputStream을 닫을 때\n(입력 전용 스트림이므로) 파일의 상태를 변경하지 않았으니 복구할 것이 없음\n(스트림을 닫는다는 건) 필요한 정보는 이미 다 읽었다는 뜻이니 남은 작업을 중단할 이유도 없음</li>\n<li>\n<p>예외를 무시하기로 했다면 catch 블록 안에 그렇게 결정한 이유를 주석으로 남기고 예외 변수 이름도 ignore로 바꿔놓도록 하자 .</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token class-name\">Future</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Integer</span><span class=\"token punctuation\">></span></span> f <span class=\"token operator\">=</span> exec<span class=\"token punctuation\">.</span><span class=\"token function\">submit</span><span class=\"token punctuation\">(</span>planarMap<span class=\"token operator\">::</span><span class=\"token function\">chromaticNumber</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n<span class=\"token keyword\">int</span> numColors <span class=\"token operator\">=</span> <span class=\"token number\">4</span><span class=\"token punctuation\">;</span> \n<span class=\"token keyword\">try</span> <span class=\"token punctuation\">{</span> \nnumColors <span class=\"token operator\">=</span> f<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token number\">1L</span><span class=\"token punctuation\">,</span> <span class=\"token class-name\">TimeUnit</span><span class=\"token punctuation\">.</span>SECONDS<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">catch</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">TimeoutException</span> <span class=\"token operator\">|</span> <span class=\"token class-name\">ExecutionException</span> ignored<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token punctuation\">}</span></code></pre></div>\n</li>\n</ul>","fields":{"tagSlugs":["/tags/책리뷰/","/tags/이펙티브자바/"],"slug":"/history/posts/2020-10-12--001--09"},"frontmatter":{"title":"[책리뷰/Effective Java] 예외","tags":["책리뷰","이펙티브자바"],"date":"2020-10-12","description":"아이템77) 예외를 무시하지 말라"}}},"pageContext":{"slug":"/history/posts/2020-10-12--001--09"}},"staticQueryHashes":[]}