`
wusuoya
  • 浏览: 629782 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

Java中的Exception异常 自定义异常

    博客分类:
  • Java
阅读更多

Exception类是java中所有异常类的父类,比如我们经常见到的NullPointerException所继承的父类RuntimeException就是继承于Exception,Exception类有四个构造方法,子异常类在继承Exception类后,可以自由选择调用其中的哪个构造方法,四个构造方法分别如:

构造方法摘要
Exception()
构造详细消息为 null 的新异常。
 
Exception(String message)
构造带指定详细消息的新异常。
 
Exception(String message, Throwable cause)
构造带指定详细消息和原因的新异常。
 
Exception(Throwable cause)
根据指定的原因和 (cause==null ? null : cause.toString()) 的详细消息构造新异常(它通常包含 cause 的类和详细消息)。
抛出和捕获异常:
4.1、把异常交给JVM处理:
public class ExceptionTest {

    public static void execute() throws Exception {
        System.out.println("execute...");
        throw new Exception();
    }

    public static void main(String[] args) throws Exception {
        execute();
    }
}
4.2、或者使用try catch语句块捕获异常:
public class ExceptionTest {

    public static void execute() throws Exception {
        System.out.println("execute...");
        throw new Exception();
    }

    public static void main(String[] args) {
        try {
            execute();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
    }
}

 

异常使用注意事项:

当使用多个catch语句块来捕获异常时,需要将父类的catch语句块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,Java编译器会报编译错误。

如果try语句块中存在return语句,那么首先会执行finally语句块中的代码,然后才返回。

如果try语句块中存在System.exit(0)语句,那么久不会执行finally语句块的代码了,因为System.exit(0)会终止当前运行的JVM。程序在JVM终止前结束执行。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics