异常介绍:
异常(异常就是导致程序终止的一种指令流,异常会使程序终止执行)
作用:
异常处理能让我们的代码让程序变得更加健壮,可以让维护性变高
异常处理不是修复错,而是将错误抛出日志或控制台
异常处理原则是 谁调用谁处理
RuntimeException:运行时异常可以不处理(未授检异常,未授控制)
异常的体系:
Throwable
Error:
通常出现重大问题如:运行的类不存在或者内存溢出等。 不编写针对代码对其处理
Exception:
在运行时运行出现的一起情况,可以通过try catch finally
Exception和Error的子类名都是以父类名作为后缀
Throwable中的方法
getMessage()
获取异常信息,返回字符串
toString()
获取异常类名和异常信息,返回字符串
printStackTrace()
获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void
throws和throw
throws用于标识函数暴露出的异常
throw用于抛出异常对象
throws与throw的区别:
thorws用在函数上,后面跟异常类名
throw用在函数内,后面跟异常对象
异常处理:
//异常处理
try{
//把有可能出现错误的代码写在这里
int i = 2/0;
}catch(Exception e){
System.out.println(e);
}finally{
//一定会执行,但是虚拟机被关闭不会执行
System.exit(0); //关闭虚拟机
System.out.println("lbw");
}
System.out.println("lbwnb");
自定义异常:
子类在重写父类的方法时,抛出异常不能放大
Class DemoException extends Exception
{
DemoException(String message)
{
super(message);
}
}
异常细节:
1.RuntimeException以及其子类如果在函数中被throw抛出,可以不用 在函数上声明。
2.一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子 类。
3.如果父类抛出多个异常,那么覆写(覆盖)方法必须抛出那些异常 的一个子集,不能抛出新的异常。