0Pricing
Java Academy · レッスン

防御的プログラミング

防御的プログラミングを学びます。入力を検証し、nullを避け、わかりやすい例外ですぐに失敗させます。

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

導入

防御的プログラミングとは、無効な入力、null、誤った状態などのエラーを予測してコードを書くことです。問題を早期に発見しやすくなります。

入力値を検証する

メソッドの開始時に引数をチェックしてください。入力が無効な場合は、不正なデータで処理を続けるのではなく、すぐに例外を送出します。

コード: 入力値の検証

このメソッドは分母をチェックし、0で除算する代わりに例外を送出します。

public class Main {
  static int divide(int a, int b) {
    if (b == 0) {
      throw new IllegalArgumentException("Denominator must not be zero");
    }
    return a / b;
  }
  public static void main(String[] args) {
    try {
      System.out.println(divide(10, 0));
    } catch (IllegalArgumentException e) {
      System.out.println("Caught: " + e.getMessage());
    }
  }
}

nullを避ける

nullを渡したり返したりすることは避けてください。代わりに空のコレクション、デフォルト値、またはOptionalを使用すると、NullPointerExceptionsを減らせます。

コード: nullチェック

ここではnullをチェックし、後でNullPointerExceptionが発生するのを防ぐために例外を送出しています。

public class Main {
  static String upper(String s) {
    if (s == null) {
      throw new IllegalArgumentException("String must not be null");
    }
    return s.toUpperCase();
  }
  public static void main(String[] args) {
    try {
      System.out.println(upper(null));
    } catch (IllegalArgumentException e) {
      System.out.println("Caught: " + e.getMessage());
    }
  }
}

コード: フェイルファスト

フェイルファスト:明確なエラーを使って問題をすぐに検出します。これにより、後で分かりにくいバグが発生するのを防ぎます。

public class Main {
  static int[] makeArray(int size) {
    if (size < 0) {
      throw new IllegalArgumentException("Size must be non-negative");
    }
    return new int[size];
  }
  public static void main(String[] args) {
    try {
      makeArray(-5);
    } catch (IllegalArgumentException e) {
      System.out.println("Caught: " + e.getMessage());
    }
  }
}

防御的プログラミングの確認

クイックチェック:防御的プログラミングの主な目的は何ですか。

まとめ

まとめ:防御的プログラミングでは、入力値を検証し、nullを避け、問題があればすぐに失敗させます。プログラムの安全性が高まり、デバッグもしやすくなります。

よくある質問

「防御的プログラミング」レッスンは無料ですか?

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

「防御的プログラミング」で何を学びますか?

防御的プログラミングを学びます。入力を検証し、nullを避け、わかりやすい例外ですぐに失敗させます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「防御的プログラミング」レッスンにはどのくらい時間がかかりますか?

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

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

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

このコースのすべてのレッスン

  1. 例外のスローとカスタム例外
  2. try-with-resources(AutoCloseable)
  3. 防御的プログラミング
← Java Academyに戻る