Java异常中toString()和getMessage()区别
在java异常体系中,要打印异常信息,可以通过:e.getMessage() 、 e.toString() e.printStackTrace() 等方法打印出 一些 异常信息。已知的是这些方法都可以打印异常信息,但是这些方法打印的异常信息 都不相同,那么问题来啦: 这些方法打印异常信息的区别是?日常开发工作中,该用哪个方法打印异常信息呢?
首先写了两个错误
@Controller
public class DemoController {
@RequestMapping("/show1")
public String showInfo(){
String str = null;
str.length();
return "index";
}
@RequestMapping("/show2")
public String showInfo2(){
int a = 10/0;
return "index";
}
}第一个是空指针异常
使用toString()方法打印报错信息
@ControllerAdvice
public class AjaxGlobalException {
@ResponseBody
@ExceptionHandler
public Map<String,Object> errorHandler(Exception e){
Map<String, Object> hashMap = new HashMap<>();
hashMap.put("status",500);
hashMap.put("msg",e.toString());
return hashMap;
}空指针异常的错误信息是;

如果使用 getMessage()报错信息是null:

所以!!!!!!!!!!输出异常要使用toString()
因为toString方法获取的是异常类型和异常详细信息
getMessage()只获取异常的详细信息字符串
到此这篇关于Java异常中toString()和getMessage()区别的文章就介绍到这了,更多相关Java toString() getMessage() 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用Spring Cloud Stream处理事件的示例详解
Spring Cloud Stream 是基于 Spring Boot 的用于构建消息驱动微服务的框架,本文主要介绍了如何使用 Spring Cloud Stream 来处理事件,需要的可以参考一下2023-06-06
Java线程队列LinkedBlockingQueue的使用
本文主要介绍了Java线程队列LinkedBlockingQueue的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-06-06
SpringBoot用实体接收Get请求传递过来的多个参数的两种方式
本文主要介绍SpringBoot用实体接收Get请求传递过来的多个参数,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-04-04


最新评论