现在讲一下异常,最高的异常是Throwable,它又分为error、Exception。
异常Exception又分为IOException、RuntimeException(运行时异常),IOException随着JAVA的更新换代已经在编写代码阶段就已经被解决掉了,主要是RuntimeException(运行时异常)。
所以我们接收的异常只有两类运行时异常RuntimeException和Exception,下面我用代码展示一下怎么接收异常,运行时异常也是同样的。
@RestController
public class TestController {
@GetMapping("/getMessage/{id}")
public String getExceptionMessage(@PathVariable("id")Integer id) throws Exception{
try {
if (id == 1){
Integer k = 1/0;
}else {
Integer t = 2;
System.out.println("输出t"+t);
}
}catch (Exception e){
throw e;
}
return "/ by zero";
}
/**
* @Author: 哈哈小王子
* @Date: 2021/4/1 16:34
* @Version 1.0
*/
//有这个注解才可以在用下面的注解接收到抛出的异常,最大的是接收Exception的异常
@RestControllerAdvice
public class HandlerException {
//用来接收异常的注解,括号里边放置的是所要接收的异常的类
@ExceptionHandler(Exception.class)
public String getExceptionMessage(Exception e){
System.out.println(e.getMessage());
String k = e.getMessage();
return k;
}
}