{"id":169,"date":"2020-04-11T13:18:30","date_gmt":"2020-04-11T04:18:30","guid":{"rendered":"https:\/\/blog.daymore.com\/?p=169"},"modified":"2020-04-11T16:10:12","modified_gmt":"2020-04-11T07:10:12","slug":"swift-throw-throws-rethrows-do-try-catch-defer","status":"publish","type":"post","link":"https:\/\/blog.daymore.com\/?p=169","title":{"rendered":"swift throw throws rethrows do-try-catch defer"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">enum ErrorCode: Error {\n    case divideZero\n    case none\n    \n    var str: String {\n        switch self {\n        case .divideZero:\n            return \"divided by zero\"\n        default:\n            return \"not defined\"\n        }\n    }\n}\n\n\/\/\uc608\uc678\ub97c \ub358\uc9c0\ub294 \ud568\uc218\ub294 throws \ud45c\uae30\nfunc divide(_ a: Double, _ b: Double) throws -> Double {\n    if b == 0.0 {\n        throw ErrorCode.divideZero\n    }\n    return a\/b\n}\n\nextension Int {\n    \/\/\uc608\uc678\ub97c \ub358\uc9c0\ub294 \ud568\uc218\ub97c \ud638\ucd9c\ud558\uace0 do-try-catch \ud558\uc9c0 \uc54a\uc73c\uba74 rethrows \ub85c \uc608\uc678 \ub358\uc9d0\n    func divide(_ a: Int, fn: (Double, Double) throws -> Double) rethrows -> Int {\n        try Int(fn(Double(self), Double(a)))\n    }\n}<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">func something() {\n    var ret = -1\n    defer { print(\"divide result \\(ret)\") }\n    do {\n        ret = try 10.divide(0, fn: divide(_:_:))\n    } catch let err {\n        print(\"\\((err as? ErrorCode)?.str ?? \"\")\")\n    }\n}<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[39,43,42,17,40,41,38],"class_list":["post-169","post","type-post","status-publish","format-standard","hentry","category-swift","tag-catch","tag-defer","tag-rethrows","tag-swift","tag-throw","tag-throws","tag-try"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>swift throw throws rethrows do-try-catch defer - \uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.daymore.com\/?p=169\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"swift throw throws rethrows do-try-catch defer - \uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.daymore.com\/?p=169\" \/>\n<meta property=\"og:site_name\" content=\"\uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-11T04:18:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-11T07:10:12+00:00\" \/>\n<meta name=\"author\" content=\"daymore\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"daymore\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.daymore.com\/?p=169\",\"url\":\"https:\/\/blog.daymore.com\/?p=169\",\"name\":\"swift throw throws rethrows do-try-catch defer - \uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd\",\"isPartOf\":{\"@id\":\"https:\/\/blog.daymore.com\/#website\"},\"datePublished\":\"2020-04-11T04:18:30+00:00\",\"dateModified\":\"2020-04-11T07:10:12+00:00\",\"author\":{\"@id\":\"https:\/\/blog.daymore.com\/#\/schema\/person\/d2a6b2e27e0ca7aa5736172b432c1763\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.daymore.com\/?p=169#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.daymore.com\/?p=169\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.daymore.com\/?p=169#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.daymore.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"swift throw throws rethrows do-try-catch defer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.daymore.com\/#website\",\"url\":\"https:\/\/blog.daymore.com\/\",\"name\":\"\uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd\",\"description\":\"blog.daymore.com\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.daymore.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.daymore.com\/#\/schema\/person\/d2a6b2e27e0ca7aa5736172b432c1763\",\"name\":\"daymore\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/blog.daymore.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f7c8fbf7472c334702e25bab1089b35096ea0daf226ea3e22f66568aba3570e6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f7c8fbf7472c334702e25bab1089b35096ea0daf226ea3e22f66568aba3570e6?s=96&d=mm&r=g\",\"caption\":\"daymore\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"swift throw throws rethrows do-try-catch defer - \uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.daymore.com\/?p=169","og_locale":"ko_KR","og_type":"article","og_title":"swift throw throws rethrows do-try-catch defer - \uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd","og_url":"https:\/\/blog.daymore.com\/?p=169","og_site_name":"\uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd","article_published_time":"2020-04-11T04:18:30+00:00","article_modified_time":"2020-04-11T07:10:12+00:00","author":"daymore","twitter_card":"summary_large_image","twitter_misc":{"\uae00\uc4f4\uc774":"daymore"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blog.daymore.com\/?p=169","url":"https:\/\/blog.daymore.com\/?p=169","name":"swift throw throws rethrows do-try-catch defer - \uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd","isPartOf":{"@id":"https:\/\/blog.daymore.com\/#website"},"datePublished":"2020-04-11T04:18:30+00:00","dateModified":"2020-04-11T07:10:12+00:00","author":{"@id":"https:\/\/blog.daymore.com\/#\/schema\/person\/d2a6b2e27e0ca7aa5736172b432c1763"},"breadcrumb":{"@id":"https:\/\/blog.daymore.com\/?p=169#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.daymore.com\/?p=169"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.daymore.com\/?p=169#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.daymore.com\/"},{"@type":"ListItem","position":2,"name":"swift throw throws rethrows do-try-catch defer"}]},{"@type":"WebSite","@id":"https:\/\/blog.daymore.com\/#website","url":"https:\/\/blog.daymore.com\/","name":"\uae00\uc4f0\uae30, IT \uc791\uc740 \uc9c0\uc2dd","description":"blog.daymore.com","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.daymore.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Person","@id":"https:\/\/blog.daymore.com\/#\/schema\/person\/d2a6b2e27e0ca7aa5736172b432c1763","name":"daymore","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/blog.daymore.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f7c8fbf7472c334702e25bab1089b35096ea0daf226ea3e22f66568aba3570e6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f7c8fbf7472c334702e25bab1089b35096ea0daf226ea3e22f66568aba3570e6?s=96&d=mm&r=g","caption":"daymore"}}]}},"_links":{"self":[{"href":"https:\/\/blog.daymore.com\/index.php?rest_route=\/wp\/v2\/posts\/169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.daymore.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.daymore.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.daymore.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.daymore.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=169"}],"version-history":[{"count":3,"href":"https:\/\/blog.daymore.com\/index.php?rest_route=\/wp\/v2\/posts\/169\/revisions"}],"predecessor-version":[{"id":183,"href":"https:\/\/blog.daymore.com\/index.php?rest_route=\/wp\/v2\/posts\/169\/revisions\/183"}],"wp:attachment":[{"href":"https:\/\/blog.daymore.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.daymore.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.daymore.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}