[Swift] do try catchを使ってエラー処理

swift

iOSアプリ開発でFirebaseを使ったアプリを開発している時にXcode先生からエラー処理の記述がないと怒られたので備忘録を兼ねてメモ。

何をしていて怒られたのか

Firebaseを使ってコードを書いていたら、エラー処理云々で怒られてしまいました。

具体的には、ユーザーがログアウトする際の挙動を書いていたときです。

@IBAction func logOutPressed(_ sender: AnyObject) {
    //ログアウトボタンを押したらログアウトする
    Auth.auth().signOut()
}

Call can throw, but it is not marked with ‘try’ and the error is not handled

(呼び出しは投げることができますが、’try’と記述がないためエラー処理がされません)

エラーを持つメソッドを呼び出す場合には、エラー処理の記述が必要みたいですね。

do try catchでエラー処理を記述する

上記のコードはそのままではコンパイルエラーになります。これを通過するには、エラー処理の記述が必要になります。

@IBAction func logOutPressed(_ sender: AnyObject) {
    do {
        try Auth.auth().signOut()
    } 
    catch { 
        print("error") 
    } 
}

doの中にエラーを持つメソッドを記述し、そのメソッドの前にtryを記述します。

そして、catchの中にはエラーが起こった時の処理を記述します。

シンプルな方だと思いますが、複雑なエラー処理もあるようです。

Swift 4.0 エラー処理入門



カテゴリー