ストレートメインコースに、ナンセンスを言っても過言ではありません!!
ステップ:
SpringBoot開発環境のセットアップ、少しは(プライベート文字Iがあることはできません)。
2.カスタム例外を書く、カスタム例外はRuntimeExceptionをを継承する必要があります。コンストラクタを書くと、例外情報の保存親クラスを呼び出します。
public class MyException extends RuntimeException {
public MyException(String massage) {
super(massage);
}
}
3.スローされる例外のためのコントローラを書きます。リクエストパラメータparam = AA例外がスローされると、それ以外の場合は例外をスローしません。
@Controller
public class MyController {
@ResponseBody
@RequestMapping("/exception")
public String ee(String param){
if(param.equals("aa")){
throw new MyException("抛出自定义异常");
}
return "没有抛出异常";
}
}
コントローラは、カスタム例外をスローした場合、これは、ステータスコード500サーバーエラーが発生しています。springbootは例外インターフェイスは非常に友好的ではありません、我々は次のステップを参照して、例外例外情報を表示するためのインタフェースをカスタマイズすることができています。
4.カスタムカスタム例外ハンドラ・インタフェース。springbootが自動的にビューリゾルバを設定し、我々はクラスパス上に500.htmlを書き込むことができます。tempaltes /エラーディレクトリの下に。
500.htmlコードは(thymeleafレンダリングして)以下の通りであります:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
status: [[${status}]] <br>
timestamp: [[${timestamp}]] <br>
message: [[${message}]] <br>
exception: [[${exception}]] <br>
</body>
</html>
コードは効果でそれを見るために準備されていました!
私たちは、http訪問時:// localhost /を例外をPARAM = aaが、以下のような結果があるとき:?例外をスロー
// localhost /を例外:? HTTPをご覧くださいPARAM = BB、 次のように例外が、スローされません。
** TELL:クエリは、ユーザーが存在しない場合、コントローラは、ユーザ例外が存在して投げ、迅速かつフレンドリーなインターフェイスにジャンプしないように、ユーザー管理システムでは、我々は、例外クラスを存在しないユーザーをカスタマイズすることができます。
ラッシュチケットシステム、ユーザーはチケットが完売されている購入した場合、我々はカスタムチケットを投げることができるも例外ではありません、迅速かつフレンドリーなインターフェイスにジャンプしています。**