java异常相关知识点

异常体系:

所有异常都是由Throwable继承而来。

1.Java中的两种异常类型是什么?他们有什么区别?

Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常。
区别:不受检查的异常不需要在方法或者是构造函数上声明,就算方法或者是构造函数的执行可能会抛出这样的异常,并且不受检查的异常可以传播到方法或者是构造函数的外面。相反,受检查的异常必须要用throws语句在方法或者是构造函数上声明。

2.Java中Exception和Error有什么区别?

Exception和Error都是Throwable的子类。
error类描述了java运行时内部错误和资源耗尽错误。应用程序不抛出此类异常,这种内部错误一旦出现,除了告知用户并使程序安全终止之外,再无能力。
Exception之下又分为两个分支,RuntimeException(程序错误导致的异常)和IOException(I/O错误导致的异常)
Exception用于用户程序可以捕获的异常情况。Error定义了不期望被用户程序捕获的异常。

3.Exception和RuntimeException的区别

使用Exception是RuntimeException的父类,使用Exception定 义的异常都要求必须使用异常处理,而使用RuntineException定义的异常可以由用户选择性的来进行异常处理。
常见的RuntimeExceptionClassCastException, NullPointerException等。

4.throw和throws有什么区别?

throw:用于方法中,表示人为进行异常类的产生。如果现在异常对象实例化不希望通过JVM产生
而通过用户产生,使用throw关键字
throws:用在方法上,在进行方法定义时,明确告诉调用者本方法可能产生哪些异常,并且异常时不必处理。
异常抛到最上层是JVM。
区别:
throw用于方法内部,主要是表示手工抛出
throws主要在方法声明上使用,明确告诉用户方法可能产生异常,同时该方法可能不处理此类异常

5.异常处理完成以后,Exception对象会发生什么变化?

Exception对象会在下一个垃圾回收过程中被回收掉

猜你喜欢

转载自blog.csdn.net/qq_41889292/article/details/81206324