0Pricing
Swift Academy · レッスン

エラーハンドリング

エラーハンドリング

「エラーハンドリング」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/1です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全1レッスンが含まれています。

概要

こんにちは。

アプリケーションの実行中には、アプリケーションのコード(論理エラーなど)や、アプリケーションが実行されている環境に応じて、さまざまなエラーが発生する可能性があります。

発生したエラーを特定して制御するには、エラーハンドリングを使用できます。

エラーの種類

エラーが発生した後、エラーハンドリングによってアプリケーションの処理が中断されるのを防いだり、エラーを記録したり、場合によってはアプリケーションを終了したりできます(実行を継続できない場合)。

発生するエラーの一部は、ソフトウェア開発者がコードに含めた論理エラーが原因となることがあります。たとえば、前のセクションで学んだオプショナル値を強制アンラップすると、アプリケーションでエラーが発生します。

開発者とは無関係にエラーが発生する場合もあります。たとえば、アプリケーションが実行されているデバイスにディスク容量が残っていない場合も、アプリケーションでエラーが発生します。

カスタムエラーenum

enumを使って、発生するカスタムエラーを自分で定義できます。次の例では、クレジットカード情報の入力時に発生する可能性のあるエラーの種類を、CreditCardErrorという名前で追加しています。

enum CreditCardError: Error {
    case insufficientFunds
    case issuerDeclined
    case invalidCVC
}

throwsキーワード

作成したメソッドがエラーを生成する可能性がある場合は、メソッドの定義にthrowsキーワードを追加します。

構文の例を次に示します。

func processPayment(creditcard: String) throws {
}

throwキーワード

コードを書いているときに、ソフトウェア開発者がエラーを発生させる必要がある場合があります。

銀行の決済システムを作成していると考えてみましょう。 

クレジットカードで支払う際に、顧客の残高が不足している場合があります。この場合は、資金が不足していることを示すエラーを発生させることができます。

throw CreditCardError.insufficientFunds

do-catchブロック

do-catchブロック

アプリケーションでエラーが発生する可能性のあるメソッドを使用する場合は、そのコードをdo-catchブロックに入れて、発生する可能性のあるエラーを捕捉できます。

エラーが発生する可能性のあるコードをdoブロックに記述し、発生したエラーをcatchブロックで捕捉します。

次の例を見てみましょう。

do {
   //Code block that may throw an Error
}
catch let error {
    print(error)
}

try構文

tryキーワード以外にも、try!またはtry?を使用できます。 

例を見てみましょう。

// if an error was thrown, app will crash
let result = try! doSomething() 


if let result = try? make() {
    //If the make method is successful, the result is unwrap. It is a very elegant use.
} else {
    //make() threw an error.
}

複数のcatchブロック

呼び出すメソッドが複数のエラーを発生させる可能性がある場合は、エラーの種類に応じてエラーを振り分け、アプリケーションの処理を制御できます。

次の例では、それぞれのcatchブロックが発生する可能性のある異なるエラーを処理しています。

do {
    try doSomething()
} catch CustomError.errorOne {
  //handle errorOne Error
} catch CustomError.errorTwo(let customErr) {
   //handle errorTwo Error with customErr
}

おめでとうございます

おめでとうございます 🎉

このレッスンでは、Swiftでアプリケーションのエラーを処理する方法を学びました。

次のレッスンでお会いしましょう。

エラーハンドリング — イラスト9

よくある質問

「エラーハンドリング」レッスンは無料ですか?

はい。「エラーハンドリング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全1レッスンが含まれています。

「エラーハンドリング」で何を学びますか?

エラーハンドリング ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/1です。

「エラーハンドリング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

← Swift Academyに戻る