throws 和 throw 的区别

  1. throw是语句抛出的一个异常。throws是方法可能抛出异常的声明。

举例:
throws E1,E2,E3 只是告诉这个方法可能会跑抛出这些异常,方法的调用者 要处理这些异常
而throw 则是明确了这个地方要抛出异常。

  1. throw语句用在方法体内,表示抛出异常,由方法体内的语句处理。
    throws语句用在方法声明后面,表示在抛出异常后,由该方法的调用者来处理此异常。

  2. throws主要是声明这个方法会抛出这种类型的异常,使它的调用者知道要捕获这个异常。
    throw是具体向外抛异常的动作,所以它是抛出一个异常实例。

throw 生成一个异常对象(手动) ”抛“
throws 去处理一个异常。 “抓”

throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。

final, finally, finalize的区别。

  1. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。<br />finally是异常处理语句结构的一部分,表示总是执行。<br />finalizeObject类的一个方法,在**垃圾收集器执行的时候会调用被回收对象的此方法**,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

error和exception的区别

1.error是程序无法处理的错误,是代码运行时 jvm 出现的问题,比如内存溢出。
exceprion呢 是程序本身可以处理的异常,并且这个异常可以被处理。

  • 运行时异常
  • 编译时异常 ClassNotFoundException

两者不同 体现在 是否生成 .class字节码文件。