Throwable和Exception的区别
1.Throwable是Exception 的父类,而且Throwable处理的是更为底层的异常,而后者处理的是较为常见的异常,比如我们熟悉的IOException(流异常,通常用在文件的读取当中)就是Exception的一个分支。
话不多说,直接上代码块
package JVM;
public class JavaVMStackSOF {
//首先我们要做的就是建立一个线程,观看它是否能够出现栈的溢出,从而看出栈对应的存储大小
private int length=1;
public void thread(){
length++;
thread();//这个就是先进行方法体当中length的增加,每一次都在增加1
}
public static void main(String[] args) throws Throwable {//这个抛出的异常就是jvm底层该抛出的异常
JavaVMStackSOF jvm=new JavaVMStackSOF();
try {//try语句当中首先应该跟上的就是对应的方法体
jvm.thread();
}catch(Throwable e)
{
System.out.println("length在栈当中的长度为:"+jvm.length);//先输出对应的长度最后再抛出相应的异常
throw e;
}
}
}
这个当中对应的就是Throwable的用法及其还有对应的一个知识点就是throws和throw对应的用法,这一知识点在面试当中会经常问到,下面我就来简要介绍一下:throws后面接的是对应的类,这些类都代表的是异常类,而且它是在main方法或者void方法的后面,
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁,而且后面跟的是异常类名(前面说过),可以跟多个异常类名,用逗号隔开表示抛出异常,由该方法的调用者来处理。throws表示异常产生的可能性,并不一定会发生这种异常。
下面又来介绍throw的特点:
throw:这是一个用在方法体里面的异常,用于直接后面跟上异常的对象名
只能抛出一个异常对象名
表示抛出异常,由方法体内的语句来处理