一、try-catch-finaly处理
//当场捕捉处理处理异常
public void testTryCatch(){
try {
logger.info("1/0={}",1/0);
}catch (ArithmeticException e){
logger.info("捕捉异常{}",e.getMessage());
}catch (Exception e){
logger.info("捕捉异常{}",e.getMessage());
}finally{
logger.info("方法结束");
}
}
//
static private void test(){
UserExceptionTest e = new UserExceptionTest();
e.testTryCatch();
}
二、使用throw抛出异常,外层调用处理该异常
//自定义异常
public class UserException extends Exception{
private String msg;
private String location;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
//抛出异常
public void testThrowsExp() throws UserException {
int m = 0;
if(m==0){
UserException e=new UserException();
e.setLocation(e.getClass().getName());
e.setMsg("除数不能为0!");
throw e;
}else{
logger.info("1/m={}",1/m);
}
}
//捕捉异常并处理
static private void test1(){
try{
UserExceptionTest e = new UserExceptionTest();
e.testThrowsExp();
}catch (UserException e){
logger.info("捕捉异常{}:{}",e.getMsg());
logger.info("异常:{}",e.getLocation());
}finally {
logger.info("方法结束");
}
}