Springにおけるグローバル異常処理@Exception Handler
1257 ワード
最近プロジェクトの中でSpringbootとSpringに関するExceptionの処理を整理しました.記録して他の必要な人にも分けます.
全体の異常処理を学ぶ前に、まず二つの注釈を調べます. @Controller Adviceと @Exception Handler
@Controller Advice: Spring beansとして明示的に宣言することができます.またはクラスパスを通して自動的に検出されます.
実は理解できます. @Controller Adviceと @Component 同様に依存注入が可能です.
@Exception Handler 受け入れて対応します @Request Mapping メソッドに投げられた異常.以下のコードはController内部で定義されたものを示しています. @Exception Handler 方法.
全体の異常処理を学ぶ前に、まず二つの注釈を調べます. @Controller Adviceと @Exception Handler
@Controller Advice: Spring beansとして明示的に宣言することができます.またはクラスパスを通して自動的に検出されます.
実は理解できます. @Controller Adviceと @Component 同様に依存注入が可能です.
@Exception Handler 受け入れて対応します @Request Mapping メソッドに投げられた異常.以下のコードはController内部で定義されたものを示しています. @Exception Handler 方法.
@Controller
public class SimpleController {
@ExceptionHandler(IOException.class)
@RequestMapping("/test")
public ResponseEntity handleIOException(IOException ex) {
return responseEntity;
}
}
もちろんです.グローバルの異常処理をすると言いました.上はただ一つの方法のExceptionを処理しました.これは私達が望んだのではありません.グローバルExceptionは下を見てみます.
/**
* @author: ZhangGuihong
* @Date: 2018/9/19 22:59
*/
@ControllerAdvice
public class ExceptionHandler {
// Exception.class ,
@ExceptionHandler(Exception.class)
@ResponseBody
public Object ExceptionHandler(Exception e) {
//
return "Samething is wrong!";
}
}
web Controller , .