首页 > 代码库 > Throwable类

Throwable类

  1. toString() 输出该异常的类名
  2. getMessage() 输出异常的信息,需要通过构造方法传入异常信息(例如病态信息)
  3. printStackTrace() 打印栈信息

    class Demo {

     

    public static void main(String[] args) {

     

    // Throwable able=new Throwable();

    Throwable able = new Throwable("想吐。。。");

    System.out.println(able.toString()); // 输出该异常的类名

    System.out.println(able.getMessage()); // 输出异常的信息

    able.printStackTrace(); // 打印栈信息

    }

    }

  4. 总结

    1. 程序中有多个语句可能发生异常,可以都放在try语句中。并匹配对个catch语句处理
    2. 如果异常被catch匹配上,接着执行try{}catch(){} 后的语句。没有匹配上程序停止。
    3. try中多个异常同时出现,只会处理第一条出现异常的一句,剩余的异常不再处理。
    4. 使用多态机制处理异常。
      1. 程序中多态语句出现不同异常,出现了多个catch语句。简化处理(相当于急诊)
      2. 使用多态,使用这些异常的父类进行接收。(父类引用接收子类对象)

        1.1.1 抛出处理

        定义一个功能,进行除法运算例如(div(int x,int y))如果除数为0,进行处理。

        功能内部不想处理,或者处理不了。就抛出使用throw new Exception("除数不能为0"); 进行抛出。抛出后需要在函数上进行声明,告知调用函数者,我有异常,你需要处理如果函数上不进行throws 声明,编译会报错。例如:未报告的异常 java.lang.Exception;必须对其进行捕捉或声明以便抛出throw  new Exception("除数不能为0");

        public static void div(int x, int y) throws Exception { // 声明异常,通知方法调用者。

         

        if (y == 0) {

        throw new Exception("除数为0"); // throw关键字后面接受的是具体的异常的对象

        }

        System.out.println(x / y);

        System.out.println("除法运算");

        }

      3. 5main方法中调用除法功能

        调用到了一个可能会出现异常的函数,需要进行处理。

        1:如果调用者没有处理会编译失败。

        如何处理声明了异常的函数。

        1try{}catch(){}

         

        public static void main(String[] args) {

         

        try {

        div(2, 0);

        } catch (Exception e) {

        e.printStackTrace();

        }

        System.out.println("over");

         

        }

         

        public static void div(int x, int y) throws Exception { // 声明异常,通知方法调用者。

         

        if (y == 0) {

        throw new Exception("除数为0"); // throw关键字后面接受的是具体的异常的对象

        }

        System.out.println(x / y);

        System.out.println("除法运算");

        }

        }

Throwable类