Java语言中两种异常的差别
- 作者:zhaozj
- 发表时间:2020-12-23 10:36
- 来源:未知
Java提供了两类主要的异常:runtime exception和checked exception。所有的checked exception是从java.lang.Exception类衍生出来的,而runtime exception则是从java.lang.RuntimeException或java.lang.Error类衍生出来的。
它们的不同之处表现在两方面:机制上和逻辑上。 一、机制上 它们在机制上的不同表现在两点:1.如何定义方法;2. 如何处理抛出的异常。请看下面CheckedException的定义:
public class CheckedException extends Exception{ public CheckedException() {} public CheckedException( String message ) { super( message ); }} |
public class ExceptionalClass{ public void method1() throws CheckedException { // ... throw new CheckedException( "...出错了" ); } public void method2( String arg ) { if( arg == null ) { throw new NullPointerException( "method2的参数arg是null!" ); } } public void method3() throws CheckedException { method1(); }} |
public static void main( String[] args ){ ExceptionalClass example = new ExceptionalClass(); try { example.method1(); example.method3(); } catch( CheckedException ex ) { } example.method2( null );} |