防御的プログラミング
防御的プログラミングを学びます。入力を検証し、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フィードバックを取得できます。ローカル設定は不要です。