216 Throwable的成员方法

216 Throwable的成员方法

> Throwable是所有异常、错误的顶级超类

方法名

说明

public String getMessage();

返回此Throwable的纤细信息字符串

public String toString();

返回此可抛出的简短描述

public void printStackTrace();

把异常的错误信息输出在控制台

heap,堆内存

stack,栈内存

--------------------------------------------------------------

(module)myException

(package)it01e216

class)ExceptionDemo

--------------------------------------------------------------

package it01e216;

public class ExceptionDemo {

    public static void main(String[] args) {

        System.out.println("216/begin");

        method();

        System.out.println("end");

    }

    public static void method(){

        try{

            int[] arr = {1,2,3};

            System.out.println("216/arr[3]:"+arr[3]);//这里产生一个对象:new ArrayIndexOutOfBoundsException("string"),含有字符串类型参数

        }catch(ArrayIndexOutOfBoundsException e){

            e.printStackTrace();

            System.out.println("e.getMessage():\n"+e.getMessage());//OUTPUT:e.getMessage():Index 3 out of bounds for length 3

            System.out.println("e.toString():\n"+e.toString());

        }

    }

//    public String getMessage() {

//        return detailMessage;

//    }

}

--------------------------------------------------------------

ctrl b查看getMessage()的源代码

    public String getMessage() {

        return detailMessage;

    }

ctrl f查找出现detailMessage的地方,一共6处,第一处是声明这个成员变量,其他是传值给它的

private String detailMessage;

在ExceptionDemo-class的注释里书写如下

/*

public class Throwable{

private String getMessage;

public Throwable(String message){

//把message赋值给detaliMessage

detailMessage = message;

}

public String getMessage(){

return detailMessage;

}

}

//通过构造方法给detailMessage赋值

//由此可知,new ArrayIndexOutOfBoundsException()其实是带有参数的,

*/

Guess you like

Origin blog.csdn.net/m0_63673788/article/details/121508253