异常
Exception,Java在语言层面上的错误处理机制
异常的体系
Error:严重问题,不需处理
Exception:异常类,程序本身可以处理的问题
RuntimeException:运行时问题,编译不需检查
NonRuntimeException:编译时必须处理
JVM默认异常处理方式
将异常名称、错误原因及异常出现位置信息输出
程序在异常出现位置停止
try-catch方法处理异常
try{
//possible exception code
} catch(ExceptionClassName VarName){
//handle exception code
}
Throwable成员方法
getMessage():返回详细消息
toString(): 返回可抛出的简短描述
printStackTrace():异常错误信息输出在控制台
Throws
格式
public void method() throws ExceptionClassName{}
跟在方法后面,try-catch是方法内处理,throws是谁调用方法谁处理(跟方法绑定)
throws和throw的区别
throws | throw |
---|---|
方法声明后,跟的是异常类名 | 方法体内,跟的是异常对象名 |
抛出异常给方法调用者处理 | 抛出异常给方法体内语句处理 |
不一定发生异常 | 执行throw一定有异常 |
自定义异常
可以自己定义异常类,继承自Exception
最常见的异常:NullPointerException
调用对象为null的时候产生,是Java代码常见的逻辑错误,应当早暴露,早修复
良好的编码习惯(如定义时初始化)会减少该错误