Swiftにおけるエラー処理では、「エラー型の定義」が重要な要素となります。Swiftでは、エラーを表すためにErrorプロトコルに準拠した型を定義し、その型を用いてエラーをスロー(throw)することで、例外的な状況を呼び出し元に通知することができます。
エラー型の定義の基本
Swiftでは、**列挙型(enum)**を使ってエラーの種類を定義するのが一般的です。これは、複数の異なるエラーケースを分かりやすく表現できるためです。定義した列挙型にはErrorプロトコルを準拠させる必要があります。
例:ファイル操作のエラー型定義
この例では、FileErrorという列挙型を定義し、3つのエラーケースを用意しています。Errorプロトコルに準拠しているため、これらのケースはエラーとして使用できます。
エラー型に関連情報を持たせる
各ケースに**関連値(associated value)**を持たせることで、追加情報を含めることも可能です。
例:詳細情報を持つエラー型
-
badURLは不正なURLを文字列で保持 -
requestFailedはステータスコードなどの数値を保持 -
unknownは他のError型を保持
これにより、呼び出し側はエラーの原因をより詳細に把握できます。
エラー型の使用例
エラー型は、throws関数と組み合わせて使用されます。
呼び出し元では、do-catch構文でエラーを捕捉します。
補足:Errorはプロトコル
ErrorはプロトコルSwiftのErrorは空のプロトコルです。特別な要件はなく、準拠するだけでthrowやcatchの対象として扱えるようになります。
まとめ
-
Swiftでは
Errorプロトコルに準拠した型を定義してエラーを表現する。 -
一般的に
enumを使って複数のエラーケースを定義する。 -
関連値を用いて詳細な情報を保持できる。
-
throws関数とdo-catch構文を組み合わせてエラー処理を行う。
生成日:2025/05/04