异常
异常以类形式存在,抛出异常时new一个异常对象(jvm自动完成)。
异常父类是java.lang.Throwable
有两个子类 Error, Exception
- Error,直接终止程序,退出jvm
- Exception的ExceptionSubClass子类是编译时异常,在编写程序时要求对这种异常预先处理,否则编译器报错,又名CheckException
- RuntimeException子类是运行时异常,又名UnCheckException
处理异常两种方式:
- throws抛给上一级
- try…catch捕捉, throws一直往上拋直到main方法,再继续抛给调用者jvm,就终止程序执行
catch方法传入的e参数保存的是抛异常的方法中throw的异常对象的内存地址
jdk8允许catch参数使用多个参数并用数学运算(与,或)
获取异常简单描述信息
expection.getMessage()
打印异常堆栈信息,异步线程输出
e.printStackTrace()
finally
- finally最后且一定会执行,不论try是否有异常被catch
在try中抛出 - System.exit(status:0)退出jvm,则finally语句不执行
finally finallize区别
finallize()是标识符,obhect类的方法,作为方法名出现
throws 和 throw 的区别
throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的
是异常对象。