一、什么是异常(Exception):
1.生活中的异常:在现实生活中发生的意外情况.
2.程序中的异常:异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序.
二、异常处理:
1.什么是异常处理:java编程语言使用异常处理机制为程序提供了错误处理的能力.
注意:不是解决错误
作用:增强程序健壮性、稳定性
2.java异常处理相关关键字:try、catch、finally、throw、throws
3.使用try..catch..finally进行异常处理
try{
试图执行的代码块
}catch(异常类型 e){
出错时执行代码块
}finally{
不管有错没错都执行
}
注意:a.finally块可有可无
b.多重catch语句(exception只能出现在最后)
catch(InputMismatchException e){
e.printStackTrace();
}catch(ArithmeticException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
4.在catch块获异常对象相关信息
4.1使用e.getMessage()获取异常的错误描述信息
4.2输出异常的堆栈信息
e.printStackTrace();
5.常的异常类型:
Exception 异常的根类
常用异常子类有:
ArithmeticException 零作为除数
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 尝试访问 null 对象成员
IllegalArgumentException 方法接收到非法参数
ClassCastException 对象强制类型转换出错
三、使用throws关键声明方法可能抛出的异常,交给调用者进行处理.
public class MyMath {
//求商的方法
public void getRes() throws InputMismatchException,ArithmeticException,Exception{ //声明方法可能抛出的异常
}
public static void main(String[] args) {
//创建对象
MyMath myMath=new MyMath();
try {
myMath.getRes();//调用者 处理异常
} catch (InputMismatchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ArithmeticException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
四、使用throw关键字手动抛出异常对象
throw new Exception("错误的描述信息");
五、日志记录工具:(log4j)
- 什么是日志
主要用来记录系统运行中一些重要操作信息,便于监视系统运行情况,帮助用户提前发现和避开可能出现的问题,或者出现问题后根据日志找到原因
2.使用log4j记录日志步骤:
2.1导入log4j的jar包
在项目中新建lib文件夹,将第三方的jar包复制到lib文件夹中.接着在lib文件夹中在包上右键-->build path-->add Bulid Path即可
2.2在src目录添加日志的属性文件(配置log4j如何工作):log4j.properties
2.3在类中记录错误
3.1在类中创建log4j的记录器对象
Logger logger=Logger.getLogger(Demo1.class);
3.2使用记录器对象的相关方法记录错误
logger.error("出错啦!"+e.getMessage()); //非常严重
logger.debug("出错啦!"+e.getMessage()); //一般异常信息
logger.warn("出错啦!"+e.getMessage()); //警告信息
logger.info("出错啦!"+e.getMessage()); //提示信息