Java知识点-受检异常与非受检异常


受检异常与非受检异常


1.受检异常是在编译时期有编译器检测的异常,必须要捕获异常。受检异常继承于Exception。
2.非受检异常是在运行时期的异常,编译器不会检测异常,需要时也可以捕获异常。非受检异常继承于RuntimeException。


代码如下:

package com.demo;

public class Demo {

	public static void checkException() throws Exception {
		throw new CheckException("受检异常");
	}

	public static void unCheckException() {
		throw new UnCheckException("非受检异常");
	}

	public static void main(String[] args) {
		try {
			checkException();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		unCheckException();
	}

}

 
   
  


运行结果:

com.demo.CheckException: 受检异常
at com.demo.Demo.checkException(Demo.java:6)
at com.demo.Demo.main(Demo.java:15)
Exception in thread "main" com.demo.UnCheckException: 非受检异常
at com.demo.Demo.unCheckException(Demo.java:10)
at com.demo.Demo.main(Demo.java:20)


可以看出受检异常必须在编译时就捕获到,而非受检异常则不需要在编译时捕获,在运行时抛出了RuntimeException。

你可能感兴趣的:(Java知识点)