1、异常
异常生活中不正常
在程序中异常指的是代码出现错误的现象
2、异常的分类:
编译时异常:代码语法的错误(加以修正就可以解决)
运行时异常:在编译时是不报错的,而在运行的时候就报错了。(空指针异常,除数不能为0异常,负数开方,下标越界……)
3、异常带来的一些布朗后果
a、代码报错
b、程序中断,导致后面的代码无法执行
c、给硬件带来伤害。 c=a/b
4、如何去处理这些异常,而让程序能够继续执行下去呢?
try{
//try就像一个摄像头,用来监控有可能出现的异常的代码
}catch{
//catch就像保安室,来对异常的现象来进行捕获
}finally{
//无论代码是否发生异常,都会执行的语句块
//一般用于释放资源,关闭连接
}
5、try{} catch finally 的组合
try{} catch(){}
try{} finally{}
try{} catch(){} catch(){} catch(){}
【注意:写多重catch的时候,大的异常写在后面,小异常写在前面】
6、捕获异常的3中方式
(1)、通过打印语句提示用户
(2)、System.out.println(e3.getMessage());
(3)、e.printStackTrace();
既可以打印出异常信息,而且还可以打印错误位置(错误的堆栈信息)
7、自定义异常
API 帮助文档 application interface
new Exception(""); 只是创建了一个异常对象
throw 抛出异常,通知程序报错
class AgeException extends Exception{
public AgeException(){
super("年龄输入有误");
}
}
8、异常的延迟解决
throw AgeException 抛出异常给上一级调用者
throw 和 throws 的区别: throw抛出异常,通知程序报错,放在创建异常对象的前面
throws抛出异常给调用者处理,一般放在方括号的后面
static void main (String[] args) throws Exception
将异常抛出给虚拟机的异常处理机制。这种写法在项目中是不允许的,而在自己的小例子中,为了语法上的方便可以少量使用。