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()其实是带有参数的,
*/