异常体系包括两个,异常和错误。
异常有两种解决方法,一个是捕获,一个是抛出。
抛出又有两个关键字,
throw 抛出 抛的是异常对象。
throws 声明 声明的是异常类的类型,当有多个异常需要声明时,使用逗号隔开。
import org.apache.log4j.Logger;
public class ExceptionDome {
private static final Logger LOGGER = Logger.getLogger(ExceptionDome.class);
public static void main(String[] args) throws MyException {
logTest();
}
/**
* jdk中已经提供的异常,虚拟机是可以自动识别出来的,不需要显示声明,这种方式可以成为隐式声明
* 如果想要显示的声明异常,需要用两个关键字:throws throw
* throw 抛出 抛的是异常对象
* throws 声明 声明的是异常类的类型,当有多个异常需要声明时,使用逗号隔开
*
* 捕获和抛出的区别
* 捕获:出现异常后进行捕获,程序仍然可以正常运行
* 抛出:抛出仅仅是将问题抛出去,对抛出的异常没有进行捕获,那么就由虚拟机进行处理,结果就是报错,停止运行
*/
public static void show()throws ArithmeticException,NullPointerException{
//模拟异常处理,手动制造异常
// int a = 1/0;
boolean flag = false;
if(flag){
throw new ArithmeticException("除数不能为0");
}else{
throw new NullPointerException("空指针异常");
}
}
//捕获
public static void logTest(){
try{
int a = 1/0;
}catch(Exception e){
LOGGER.debug(e.getMessage());
}
}
}