GlobalExceptionHandler 用於讓開發者可以集中處理整個應用程序中的異常情況,提供一致性的錯誤處理機制,並且提高代碼的可維護性和可讀性,同時減少重複的代碼。
這個範例是透過HttpStatus.INTERNAL_SERVER_ERROR 將HTTP狀態碼設定為500。
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error: " + e.getMessage());
}
}
使用@ExceptionHandler來處理Exception類型的異常,可以根據不同類型的需求添加更多的@ExceptionHandler方法。
@RestController
@RequestMapping("/example")
public class ExampleController {
@GetMapping("/tryException")
public void tryrException() {
throw new RuntimeException("exception");
}
}
當訪問/example/tryException時,將由GlobalExceptionHandler處理,該處理程序將會返回含錯誤消息狀態碼為500的HTTP響應。