カテゴリ: Swift 更新日: 2026/02/02

Swift Errorプロトコルの作り方|独自エラー型の設計

Swift Errorプロトコルの作り方|独自エラー型の設計
Swift Errorプロトコルの作り方|独自エラー型の設計

先生と生徒の会話形式で理解しよう

生徒

「先生、Swiftのエラーって自分で作れるんですか?ライブラリにあるものしか使えないと思ってました。」

先生

「いいところに気づきましたね。SwiftではErrorプロトコルを使って、独自のエラー型を簡単に作ることができますよ。」

生徒

「独自エラー型って、どういうときに使うんですか?」

先生

「例えばファイル操作やネットワーク通信など、状況ごとに違うエラーを表したいときにとても便利なんです。」

1. SwiftのErrorプロトコルとは?

1. SwiftのErrorプロトコルとは?
1. SwiftのErrorプロトコルとは?

Swiftでは、「エラーとして扱える型かどうか」を判断するためにErrorプロトコルが使われています。簡単に言うと、Errorに準拠していれば、その型はthrowcatchで使える“公式なエラー”になります。

プロトコルとは「こういう役割を持つ型ですよ」とSwiftに伝えるための約束事のようなものです。Errorプロトコル自体には難しい処理はなく、「エラー用の型ですよ」と示すための目印だと考えて大丈夫です。

たとえば、プログラミング未経験の方でもイメージしやすい例として、次のような最小限のエラー型を作れます。


enum SimpleError: Error {
    case somethingWrong
}

たったこれだけで、SimpleErrorはSwiftに「これはエラーです」と認識されます。標準ライブラリのエラーも、実は同じErrorプロトコルを使って作られており、私たちはそれと同じ仕組みを利用して独自エラーを定義できるのです。

2. 独自エラー型を作る基本

2. 独自エラー型を作る基本
2. 独自エラー型を作る基本

Swiftでエラーを自分で定義したいとき、まず覚えておきたいのがenum(列挙型)を使う方法です。enumは「決められた選択肢の中から1つを表す」仕組みなので、起こりうるエラーの種類を整理して表現するのにとても向いています。

たとえば「ファイルを扱う処理」では、ファイルが存在しない、操作する権限がない、原因がよく分からない、などいくつかの失敗パターンが考えられます。これらをenumでまとめておくと、後からコードを読んだときにも状況が分かりやすくなります。


enum FileError: Error {
    case notFound      // ファイルが見つからない
    case noPermission  // 操作する権限がない
    case unknown       // その他のエラー
}

このように書くことで、FileErrorはSwiftが認識できる「エラー型」になります。: Errorを付けている点が重要で、「これはエラーとして使いますよ」と明示しています。

プログラミング未経験の方は、「失敗の種類に名前を付けて箱にまとめている」とイメージすると理解しやすいでしょう。あとからエラーを処理するときに、「どの失敗が起きたのか」を安全に判断できるのが、独自エラー型を作る大きなメリットです。

3. throwで独自エラーを投げる

3. throwで独自エラーを投げる
3. throwで独自エラーを投げる

Swiftでは、問題が起きたことをプログラムに伝えるためにthrowを使います。これは「ここでエラーが発生しました」と知らせる合図のようなものです。自分で定義した独自エラーも、条件に応じて自由に投げることができます。

たとえば、ファイル名を受け取ってファイルを開く処理を考えてみましょう。ファイル名が空だったり、開いてはいけないファイルだった場合は、正常に処理を続けるのではなく、エラーとして扱ったほうが安全です。


func openFile(name: String) throws {
    if name == "" {
        // ファイル名が指定されていない場合のエラー
        throw FileError.notFound
    }
    if name == "secret.txt" {
        // 権限がなく開けない場合のエラー
        throw FileError.noPermission
    }
    print("ファイルを開きました")
}

このようにthrowを書くことで、「この条件のときはエラーにする」というルールをはっきりさせられます。初心者のうちは、throwは「失敗したらここで処理を止めて知らせるもの」と覚えておくと理解しやすいです。

4. do-catchで独自エラーを処理する

4. do-catchで独自エラーを処理する
4. do-catchで独自エラーを処理する

投げられた独自エラーは、呼び出し側でdo-catchを使って捕まえます。


do {
    try openFile(name: "secret.txt")
} catch FileError.notFound {
    print("ファイルが見つかりません")
} catch FileError.noPermission {
    print("権限がありません")
} catch {
    print("その他のエラー: \(error)")
}

権限がありません

特定のケースごとに分岐できるので、ユーザーに適切なメッセージを表示できます。

5. 構造体やクラスでも独自エラー型を作れる

5. 構造体やクラスでも独自エラー型を作れる
5. 構造体やクラスでも独自エラー型を作れる

enumだけでなく、struct(構造体)やclass(クラス)を使って独自エラーを作ることも可能です。より詳細な情報を持たせたいときに便利です。


struct NetworkError: Error {
    let code: Int
    let message: String
}

例えば「エラーコード」や「説明文」を持たせれば、開発者やユーザーにとって分かりやすいエラー表示が可能になります。

6. 独自エラー型を使うメリット

6. 独自エラー型を使うメリット
6. 独自エラー型を使うメリット

独自エラー型を設計するメリットは以下の通りです。

  • エラーの種類を明確に分けられる。
  • ユーザーに分かりやすいメッセージを表示できる。
  • 開発者が原因を特定しやすくなる。
  • アプリの信頼性を高められる。

特にアプリ開発では「何が原因でエラーになったのか」を明確にすることが、トラブル解決やユーザー体験の向上につながります。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

7. 現実的な利用シーン

7. 現実的な利用シーン
7. 現実的な利用シーン

独自エラー型は、例えば以下のような場面でよく使われます。

  • ネットワーク通信(接続失敗、タイムアウト、無効なレスポンスなど)
  • データベース操作(データが見つからない、保存失敗など)
  • ファイル操作(読み込み権限なし、書き込み失敗など)

これらの場面でErrorプロトコルを活用すれば、アプリがエラーに強くなり、ユーザーにも親切な挙動を実現できます。

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説