异常:
分为:检查异常(编译异常)、运行时异常、错误
异常是被一个方法抛出的对象
异常类:
Throwablee有Exception类和Error两个子类
Exception有RunTimeException和IOException等子类
捕获异常使用try/catch/finally语句
try后面可以跟多个cathch。
try后面可以只跟finally块
finally不管有没有异常都会执行,并且先于return\break;执行。只有System.exit(0);可以让程序不去执行finally而结束。
throws关键字用于声明异常,后接异常类型,在方法定义时就声明。规定调用他的方法必须捕获异常或者继续声明该异常。
throw关键字是抛出异常,在方法中有throw关键字,则必须在方法声明中写该异常。运行到throw时肯定有异常发生。
自定义异常时可以将各种异常统一抛给顶级调用者,让其进行处理或者记录日志。
自定义异常必须继承Exception类,并重写其中的方法。
异常处理的形式有三种:
1、在本方法中捕获异常并处理掉,不让它沿着栈继续向下抛出。
2、在本方法中捕获,并向沿着栈向下抛出。
3、不捕获这个异常,让本方法从栈中弹出,将异常抛给方法的调用者。
。