カテゴリ: Swift 更新日: 2025/11/15

Swift エラーハンドリング入門|do-try-catchの基本

Swift エラーハンドリング入門|do-try-catchの基本
Swift エラーハンドリング入門|do-try-catchの基本

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

生徒

「Swiftのプログラムでエラーが出たとき、どうやって処理したらいいんですか?」

先生

「Swiftにはエラーハンドリングという仕組みがあって、do-try-catchという書き方で安全にエラーを処理できますよ。」

生徒

「do-try-catchって難しそうに聞こえますけど、初心者でも分かりますか?」

先生

「心配いりません。具体例を交えて、エラー処理の基本を一緒に見ていきましょう。」

1. Swiftのエラーハンドリングとは?

1. Swiftのエラーハンドリングとは?
1. Swiftのエラーハンドリングとは?

プログラムを書いていると、必ず「思い通りに動かない」場面が出てきます。例えばファイルが見つからなかったり、インターネットに接続できなかったり、数字をゼロで割ってしまったりといった問題です。これをプログラムの世界では「エラー」と呼びます。

Swiftでは、エラーが起きたときにプログラムが勝手に止まってしまうのを防ぐために「エラーハンドリング」という仕組みを用意しています。これは、エラーを「受け止める」方法だと考えてください。

2. do-try-catchの基本構造

2. do-try-catchの基本構造
2. do-try-catchの基本構造

Swiftでエラーを処理するときによく使うのがdo-try-catchです。これは日本語にすると「試してみて、もし失敗したら捕まえる」というイメージです。基本の形は次のようになります。


do {
    try 関数や処理()
} catch {
    print("エラーが発生しました: \(error)")
}

ここでtryは「この処理はエラーが出るかもしれないから注意して実行する」という意味です。そしてcatchは「もしエラーが出たら、ここで処理します」という部分です。

3. 簡単な例で理解する

3. 簡単な例で理解する
3. 簡単な例で理解する

例えば「数値を割り算する関数」を考えてみましょう。ゼロで割るとエラーになりますが、Swiftのエラーハンドリングを使えば安全に処理できます。


enum DivisionError: Error {
    case divideByZero
}

func divide(_ a: Int, _ b: Int) throws -> Int {
    if b == 0 {
        throw DivisionError.divideByZero
    }
    return a / b
}

do {
    let result = try divide(10, 0)
    print("結果: \(result)")
} catch {
    print("エラーが発生しました: \(error)")
}

エラーが発生しました: divideByZero

この例では、0で割ろうとしたときに「divideByZero」というエラーを投げて、catchで処理しています。これにより、プログラムが途中で強制終了するのを防げます。

4. エラーを投げるとは?

4. エラーを投げるとは?
4. エラーを投げるとは?

Swiftの関数で「エラーが起きる可能性がある」と伝えたいときは、throwsキーワードを使います。そして実際にエラーが起きたらthrowでエラーを「投げる」ことができます。

ここでいう「投げる」とは、問題が起きたことを外側に知らせるイメージです。そしてそのエラーは外側でcatchが「受け止める」わけです。

5. 複数のエラーを処理する

5. 複数のエラーを処理する
5. 複数のエラーを処理する

プログラムによっては、エラーが1種類だけではなく、いくつも発生する可能性があります。その場合、catchを使って条件ごとに処理を分けられます。


enum FileError: Error {
    case notFound
    case noPermission
}

func openFile(name: String) throws {
    if name == "" {
        throw FileError.notFound
    } else if name == "secret.txt" {
        throw FileError.noPermission
    }
    print("ファイルを開きました")
}

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

ファイルを開く権限がありません

このようにすれば、状況に応じたエラーメッセージをユーザーに伝えることができます。

6. try? と try! の違い

6. try? と try! の違い
6. try? と try! の違い

Swiftでは、エラー処理を簡単にするための方法もあります。

  • try?:エラーが出たらnilを返してくれるので、安全に処理できます。
  • try!:エラーが出ないと信じて強制的に実行します。ただし本当にエラーが出た場合はプログラムが止まってしまうので、初心者にはおすすめできません。

let safeResult = try? divide(10, 0)
print(safeResult) // nil

let forcedResult = try! divide(10, 2)
print(forcedResult) // 5

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

Swift実践入門をAmazonで見る

※ Amazon広告リンク

7. エラーハンドリングを使うメリット

7. エラーハンドリングを使うメリット
7. エラーハンドリングを使うメリット

Swiftでエラーハンドリングを使うと、プログラムが途中で止まるのを防ぎ、ユーザーに分かりやすいメッセージを表示できます。特にアプリ開発では、エラー処理があるかどうかでユーザー体験が大きく変わります。

例えば「ネットワークに接続できませんでした」とメッセージを出せば、ユーザーは「Wi-Fiが切れているのかも」と気づけます。逆に、何も説明がなければアプリが落ちたように見えてしまいます。

関連セミナーのご案内

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
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説