do-catch構文

Swiftのエラー処理において「do-catch構文」は、エラーを投げる可能性のある関数や処理を安全に実行し、そのエラーを適切に処理するための構文です。Swiftでは、throwによって明示的にエラーを投げ、do-catchでそのエラーを捕捉します。


1. 基本構文

swift
do { try 関数または処理 // 正常に処理が実行された場合のコード } catch エラーの型1 { // エラーの型1が発生した場合の処理 } catch エラーの型2 { // エラーの型2が発生した場合の処理 } catch { // その他のすべてのエラーを処理 }

2. 使用例

swift
enum FileError: Error { case fileNotFound case unreadable } func readFile(name: String) throws -> String { if name == "notfound.txt" { throw FileError.fileNotFound } else if name == "badfile.txt" { throw FileError.unreadable } return "ファイルの内容" } do { let content = try readFile(name: "notfound.txt") print(content) } catch FileError.fileNotFound { print("ファイルが見つかりません。") } catch FileError.unreadable { print("ファイルを読み取れません。") } catch { print("その他のエラーが発生しました: \(error)") }

この例では、readFile 関数が throw を使ってエラーを投げる可能性があります。do-catch構文を使って、呼び出し元でそのエラーを処理しています。


3. try の意味

  • try: 通常のエラーハンドリングに使用します。do-catchの中で使うのが一般的です。

  • try?: エラーが発生した場合に nil を返します。失敗を無視したい場合に使用。

  • try!: エラーが発生しないことを保証する場合に使用。実際にエラーが発生するとクラッシュします。


4. 使いどころ

  • ファイル読み書き

  • ネットワーク通信

  • JSONデコード

  • データベース操作

など、失敗する可能性がある処理において、do-catch構文を用いることで堅牢なエラー処理が可能になります。


まとめ

  • do-catchはSwiftにおける基本的なエラー処理構文。

  • tryキーワードと組み合わせて使う。

  • catchブロックでエラーを個別に処理でき、柔軟性がある。

  • エラー型はErrorプロトコルに準拠している必要がある。

生成日:2025/05/04