• Java异常之初认识二


     1 public class Demo13{
     2     
     3     
     4     /*Java规定:
     5         1.必须捕获的异常,包括Exception及其子类,但不包括RuntimeException及其子类,这种类型的异常称为Checked Exception。
     6 
     7         2.不需要捕获的异常,包括Error及其子类,RuntimeException及其子类。
     8     */
     9     public static void main(String[] args) {
    10         try{
    11             process1();
    12         }catch(Exception e){
    13             //main()中捕获IllegalArgumentException,我们看看打印的异常栈
    14             e.printStackTrace();
    15             //注意到Caused by: Xxx,说明捕获的IllegalArgumentException并不是造成问题的根源,根源在于NullPointerException,是在Main.process2()方法抛出的。
    16         }
    17         
    18     }
    19     
    20     //当process2()抛出NullPointerException后,被process1()捕获,然后抛出IllegalArgumentException()
    21     
    22     static void process1(){
    23         try{
    24             process2();
    25         }catch(NullPointerException e){
    26             //如果一个方法捕获了某个异常后,又在catch子句中抛出新的异常,就相当于把抛出的异常类型“转换”了:
    27             //为了能追踪到完整的异常栈,在构造异常的时候,把原始的NullPointerException实例传进去,新的IllegalArgumentException就可以持有原始NullPointerException信息
             //捕获到异常并再次抛出时,一定要留住原始异常,否则很难定位第一案发现场!
    28 throw new IllegalArgumentException(e); 29 } 30 } 31 32 33 static void process2(){ 34 throw new NullPointerException(); 35 } 36 37 }

  • 相关阅读:
    Kubernetes tutorial
    MySQL 安装示例数据库(employee、world、sakila、menagerie 等)
    Schema 与数据类型优化
    Linux 初始化系统 systemd
    Linux 初始化系统(init)- systemd
    Vagrant 手册之 Provisioning
    Vagrant 手册之 Provisioning
    Vagrant 手册之 Provisioning
    Vagrant 手册之 Vagrantfile
    Vagrant 手册之 Vagrantfile
  • 原文地址:https://www.cnblogs.com/zui-ai-java/p/14201272.html
Copyright © 2020-2023  润新知