ResourceNotFoundException.java
Springboot/bookstore-api/src/main/java/com/example/bookstore/exception/ResourceNotFoundException.java
package com.example.bookstore.exception;
/**
* 「查無資料」的自訂例外,最終會被轉成 HTTP 404 Not Found。
*
* 【設計理念】
* Service 層發現資料不存在時,直接拋出這個例外即可,
* 不需要層層回傳 null 或 boolean。
* GlobalExceptionHandler 會統一攔截並轉成 404 JSON 回應,
* 讓 Controller / Service 的主要邏輯保持乾淨。
*
* 繼承 RuntimeException(非受檢例外):
* 呼叫端不必強制 try-catch,交給全域例外處理器即可。
*/
public class ResourceNotFoundException extends RuntimeException {
/**
* @param resourceName 資源名稱(例如「書籍」)
* @param fieldName 查詢欄位(例如「id」)
* @param fieldValue 查詢值(例如 99)
* 組出訊息:「找不到書籍:id = '99'」
*/
public ResourceNotFoundException(String resourceName, String fieldName, Object fieldValue) {
super("找不到%s:%s = '%s'".formatted(resourceName, fieldName, fieldValue));
}
}
Artículos relacionados
BookstoreApiApplication.java
BookstoreApiApplication.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/BookstoreApiApplication.java).
Leer artículo →DataInitializer.java
DataInitializer.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/config/DataInitializer.java).
Leer artículo →SecurityConfig.java
SecurityConfig.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/config/SecurityConfig.java).
Leer artículo →AuthController.java
AuthController.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/controller/AuthController.java).
Leer artículo →BookController.java
BookController.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/controller/BookController.java).
Leer artículo →ApiErrorResponse.java
ApiErrorResponse.java — java source code from the Springboot learning materials (Springboot/bookstore-api/src/main/java/com/example/bookstore/dto/ApiErrorResponse.java).
Leer artículo →