Swiftのtry-catchについて
こんにちは。shiguです。
Swift Lintを入れて、force_tryを怒られた件で気になったので調べてみました。
force_tryとは
try!
のことです。
つまり「例外が出るかもしれないけれど無視しちゃってよ」という意味。
これがNGというのは確かにわかる気がします。なんでそのままにしておいたのでしょう笑
Swift3におけるtryの処理
try?
try? someErrorMethod()
例外が発生した時に何も起こりません(異常終了しません)。
try!
try! someErrorMethod()
例外が発生した時に異常終了(クラッシュ)します。
do catch
do { try someErrorMethod() } catch { // some process... }
例外が発生した時に処理(例外処理)を行います。
部分的にcatchすることもできますし、全てまとめてcatchすることもできます。
結局何を使えばいいの?
いわゆる、「エラーハンドリング」をしたい時としたくない時とで区別する必要があります。
エラーハンドリングをしたい時
→do catch
エラーハンドリングをしたくない時
→try?(異常終了せず無視する)
try!の使用用途はほぼない、とどちらのブログを見ても書いてありました。
try!を使うくらいならtry?で静かに無視した方が良さそうですし、確かに使用用途はなさそうです…。
参考:
こちらのブログで非常にわかりやすく説明してくださっています♪
スポンサーリンク