首页 > 代码库 > Throwable类
Throwable类
- toString() 输出该异常的类名。
- getMessage() 输出异常的信息,需要通过构造方法传入异常信息(例如病态信息)。
- 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(); // 打印栈信息
}
}
-
总结
- 程序中有多个语句可能发生异常,可以都放在try语句中。并匹配对个catch语句处理。
- 如果异常被catch匹配上,接着执行try{}catch(){} 后的语句。没有匹配上程序停止。
- try中多个异常同时出现,只会处理第一条出现异常的一句,剩余的异常不再处理。
- 使用多态机制处理异常。
- 程序中多态语句出现不同异常,出现了多个catch语句。简化处理(相当于急诊)。
- 使用多态,使用这些异常的父类进行接收。(父类引用接收子类对象)
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("除法运算");
}
-
5:main方法中调用除法功能
调用到了一个可能会出现异常的函数,需要进行处理。
1:如果调用者没有处理会编译失败。
如何处理声明了异常的函数。
1:try{}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类