异常中要了解的Throwable类中的几个方法

简介: * 异常中要了解的Throwable类中的几个方法: *   public String getMessage()   获取异常的信息,返回的是字符串 *   public String toString()   获取异常类名和异常信息(即简单的异常信息描述),返回的是是以下字符串的拼接: ...

* 异常中要了解的Throwable类中的几个方法:

*   public String getMessage()   获取异常的信息,返回的是字符串

*   public String toString()   获取异常类名和异常信息(即简单的异常信息描述),返回的是是以下字符串的拼接:
*     此对象的类的 name(全路径名)
*     ": "(冒号和一个空格)
*      调用此对象 getLocalizedMessage()方法的结果 (默认返回的是getMessage()的内容)

*   public void printStackTrace()   获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。把信息输出在控制台。

*   public void printStackTrace(PrintStream s)   通常用该方法将异常内容保存在日志文件中,以便查阅。

示例代码如下:

 1 package cn.itcast_03;
 2 
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Date;
 6 
 7 /*
 8  * 编译时异常和运行时异常的区别
 9  *         编译期异常:Java程序必须显示处理,否则程序就会发生错误,无法通过编译。
10  *         运行期异常:无需显示处理(即抛出),也可以和编译时异常一样处理(显示处理)。
11  */
12 public class ExceptionDemo {
13     public static void main(String[] args) {
14         // int a = 10;
15         // int b = 0;
16         // if (b != 0) {
17         //   System.out.println(a / b);
18         // }
19 
20         String s = "2014-11-20";
21         // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 解析日期出问题了
22         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
23         try {
24             Date d = sdf.parse(s);
25             System.out.println(d);
26         } catch (ParseException e) {
27             // e.printStackTrace();
28             System.out.println("解析日期出问题了");
29         }
30     }
31 }
 1 package cn.itcast_04;
 2 
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Date;
 6 
 7 /*
 8  * 在try里面发现问题后,jvm会帮我们生成一个该异常(问题)的对象,然后把这个对象抛出,和catch里面的类型进行匹配。
 9  * 如果该对象是对应catch里的某个类型,就会执行该catch里面的处理信息。
10  * 
11  * 异常中要了解的Throwable类中的几个方法:
12  *         public String getMessage() 获取异常的信息,返回的是字符串    
13  *         public String toString() 获取异常类名和异常信息(即简单的异常信息描述),返回的是是以下字符串的拼接:
14  *               此对象的类的 name(全路径名)
15  *               ": "(冒号和一个空格) 
16  *               调用此对象 getLocalizedMessage()方法的结果 (默认返回的是getMessage()的内容)
17  *         public void printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。把信息输出在控制台。
18  * 
19  *         public void printStackTrace(PrintStream s) 通常用该方法将异常内容保存在日志文件中,以便查阅。 
20  */
21 public class ExceptionDemo {
22     public static void main(String[] args) {
23         String s = "2014-11-20";
24         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
25         try {
26             Date d = sdf.parse(s); // 创建了一个ParseException对象,然后抛出去,和catch里面进行匹配
27             System.out.println(d);
28         } catch (ParseException e) { // ParseException e = new ParseException();
29             // e.printStackTrace();
30 
31             // public String getMessage() 获取异常的信息,返回的是字符串
32             // System.out.println(e.getMessage()); // Unparseable date: "2014-11-20"
33 
34             // public String toString() 获取异常类名和异常信息(即简单的异常信息描述),返回的是字符串
35             // System.out.println(e.toString()); // java.text.ParseException: Unparseable date: "2014-11-20"
36             
37             // 上面的两个方法我们一般不用,因为返回的信息量太少了
38             // 一般用下面这个方法就搞定
39             // public void printStackTrace() 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。把信息输出在控制台。
40             e.printStackTrace();
41             // 输出结果为
42             /*
43             java.text.ParseException: Unparseable date: "2014-11-20"
44                 at java.base/java.text.DateFormat.parse(DateFormat.java:388)
45                 at cn.itcast_04.ExceptionDemo.main(ExceptionDemo.java:24)
46             over
47             */
48             
49             // 注意:此时学习的时候,我们将异常的将信息输出在控制台;将来实际开发中我们是跳转到某个指定的页面(index.html)
50         }
51         
52         System.out.println("over");
53     }
54 }
输出的结果为:
java.text.ParseException: Unparseable date:
"2014-11-20" at java.base/java.text.DateFormat.parse(DateFormat.java:388) at cn.itcast_04.ExceptionDemo.main(ExceptionDemo.java:26) over

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
Web App开发 Java Linux
【性能优化】使用Perfetto定位应用启动性能的瓶颈
本篇文章将会结合我个人对Perfetto的实际使用经历,讲解车载应用的启动时间是如何测量得到的,测量出启动时间后,我们又该如何找出其中的性能瓶颈。
2181 1
【性能优化】使用Perfetto定位应用启动性能的瓶颈
|
SQL Serverless 数据库
【count(列名)、count(1)和 count(星号)有什么区别】
【count(列名)、count(1)和 count(星号)有什么区别】
370 0
|
SQL Java 数据库
Spring Boot 学习研究笔记(九) - Spring Data JPA常用注解(1)
Spring Boot 学习研究笔记(九) - Spring Data JPA常用注解
325 0
|
JavaScript
textarea 动态宽高(根据内容动态撑开宽高)
textarea 动态宽高(根据内容动态撑开宽高)
626 0
|
SpringCloudAlibaba NoSQL Java
1.1 w字,18 张图,彻底说透 springboot starter 机制
1.1 w字,18 张图,彻底说透 springboot starter 机制
958 1
1.1 w字,18 张图,彻底说透 springboot starter 机制
|
Java 编译器
java: 源发行版 16 与 --enable-preview 一起使用时无效 (仅发行版 17 支持预览语言功能) & java: 错误: 无效的源发行版:15
java: 源发行版 16 与 --enable-preview 一起使用时无效 (仅发行版 17 支持预览语言功能) & java: 错误: 无效的源发行版:15
4908 0
|
Kubernetes IDE Java
2023Java面试学习网站推荐
2023Java面试学习网站推荐
414 0
|
SQL Java 关系型数据库
Spring Boot常用数据库开发技术总结:JDBCTemplate、JPA、Mybatis
1.概述 数据库开发一直是JAVA开发的核心之一,作为现在JAVA EE的基石框架,Spring Boot自身携带了一个JDBCTemplate框架,其对JDBC进行了基础的封装,使得Spring Boot原生就支持据库开发。同时Spring Boot也不排斥其它优秀的持久层框架,允许他们以极低的代价平滑的接入。 本文主要介绍最常用到的三个持久层框架,JdbcTemplate、JPA、mybatis如何接入Spring Boot并在其上进行开发。
500 0
|
编解码 前端开发 JavaScript
方法篇·壹】css开发技巧-全局样式设置和局部样式
方法篇·壹】css开发技巧-全局样式设置和局部样式
方法篇·壹】css开发技巧-全局样式设置和局部样式
|
存储 算法 Java
【小家java】Java之Apache Commons-Collections4使用精讲(Bag、Map、List、Set全覆盖)(上)
【小家java】Java之Apache Commons-Collections4使用精讲(Bag、Map、List、Set全覆盖)(上)