类层次结构:
Throwable:异常体系的根节点
1. Exception : java中的异常,可以通过代码解决,能解决的问题
运行时期异常:RuntimeException
Error: java中错误,必须修改代码解决
jvm处理异常的方式
1.抛出去:谁调用throws()方法谁处理
2.包起来: 程序员自己解决
积极处理:try...catch...catch
//语法 try{ //捕捉的代码:可能会出错的代码! }catch(异常的类型 对象名){ //当try代码出错之后,进行异常处理 }catch(异常的类型 对象名){ }
注意:
- try和catch都不能单独使用
- 异常类型不建议直接使用Exception,建议使用具体的
- 如果存在多个catch,异常的范围越大越靠后
2.try...catch...finally:
//语法 try{ //需要捕捉的代码 }catch(异常的类型){ //异常处理 }catch(异常的类型){ }finally{ //一定要执行的代码 资源回收 }
注意:
①、try、catch、finally都是不能单独使用!
②、组合使用:try...catch 或 try...finally 或 try...catch...finally
③、finally只能有一个!
④、捕捉失败的情况,会造成程序的终止! 当捕捉是成功之后,才会进入到异常处理!
⑤、设计程序的时候,尽可能的设计比较完整的异常!
消极处理:不处理,将异常抛出!
throws:不处理,将异常抛出! --> 谁使用谁处理!
异常对象的方法 Throwable成员方法
String getMessage(): 错误的原因
String toString() 异常的名称+错误的原因
void printStackTrace(): jvm处理就是调用这个方法
在方法中主动创建异常对象