java异常

异常对象两个重要的方法:

  1. 获取异常简单的描述信息:
String msg = exception.getMessage();

获取简短的异常信息。如果new异常时有形参,则msg为形参。

  1. 打印异常追踪的堆栈信息:
exception.printStackTrace();

异常的堆栈信息采用了异步线程的方式。

异常对象使用方法

  1. 建议捕捉异常以后调用printStackTrace方法,不然实际发生异常时我们并不知道。
  2. 我们以后查看异常的追踪信息,我们应该怎么看,可以快速的调试程序呢?
    异常信息追踪信息,从上往下一行一行看。
    但是需要注意的是:SUN写的代码就不用看了(看包名就知道是不是SUN公司写的代码)。主要的问题是出现在自己编写的代码上。

finally用来做什么?

通常在finally语句块中完成资源的释放/关闭。

try和finally的执行顺序

如果try语句中有return,则会先执行try语句,再执行finally,最后执行return。

final、finally、finalize的区别

final是一个关键字,可用于修饰变量、方法、类。其修饰的变量只能赋值一次,修饰的方法不能被重写,修饰的类不能被继承。
finally用于try语句中,表示执行完try语句中一定会执行的语句块。
finalize是Object类的一个方法,由JVM的GC(垃圾回收)机制自动调用。

自定义异常

  1. 编写一个类继承Exception或者RuntimeException.
  2. 提供两个构造方法,一个无参数的,一个带有String参数的。
public class MyException extends Exception{//编译时异常
public MyException(){
}
public MyException( String s){
	super(s);
}
  1. 如果想自定义运行时异常,继承RuntimeException类即可。

运行时异常和编译时异常

  1. 除了RuntimeException,直接继承Exception类的为编译时异常,继承RuntimeException的为运行时异常。
  2. 编译时异常必须在代码中显式处理,如继续throws或者try捕获,而运行时异常可以不用在代码中处理。

继承类重写方法中的异常

子类重写方法不能比父类抛出更多(更宽泛

上一篇:记idea连接mysql数据库java.lang.RuntimeException: com.mysql.cj.exceptions.InvalidConnectionAttributeExcepti


下一篇:Java 接口重试的几种实现