エラーハンドリングとAdvice
エラーハンドリングのパターンを学び、Spring Bootで@ControllerAdviceを使います。
「エラーハンドリングとAdvice」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
導入
エラーハンドリングによってユーザー体験が向上します。生のスタックトレースを返すのではなく、意味のあるメッセージを返します。
コード:カスタム例外
リソースが見つからない場合に使用するカスタム例外を作成します。
public class UserNotFoundException extends RuntimeException {
public UserNotFoundException(Long id) {
super("User not found with id " + id);
}
}
コード:例外のスロー
ユーザーが見つからない場合、サービスはUserNotFoundExceptionをスローします。
public User find(Long id) {
return repo.findById(id)
.orElseThrow(() -> new UserNotFoundException(id));
}
コード:ControllerAdvice
@ControllerAdviceは例外を捕捉し、レスポンスにマッピングします。
import org.springframework.web.bind.annotation.*;@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(UserNotFoundException.class)
@ResponseBody
public String handleNotFound(UserNotFoundException ex) {
return ex.getMessage();
}
}
メリット
処理を一元化すると重複を避けられ、API全体で一貫したエラーメッセージを確実に返せます。
使用方法
GET /users/999でテストします。スタックトレースの代わりに、"User not found with id 999"と表示されます。
ControllerAdviceの確認
クイックチェック:Spring Bootで@ControllerAdviceが提供するものは何ですか。
まとめ
まとめ:カスタム例外を作成してサービスでスローし、@ControllerAdviceで処理して、明確なメッセージを返しました。
よくある質問
「エラーハンドリングとAdvice」レッスンは無料ですか?
はい。「エラーハンドリングとAdvice」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「エラーハンドリングとAdvice」で何を学びますか?
エラーハンドリングのパターンを学び、Spring Bootで@ControllerAdviceを使います。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「エラーハンドリングとAdvice」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- JPA/H2とリポジトリ
- CRUDサービス層
- エラーハンドリングとAdvice