[Swift] do try catchを使ってエラー処理
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の中にはエラーが起こった時の処理を記述します。
シンプルな方だと思いますが、複雑なエラー処理もあるようです。