Java学习笔记——自定义异常处理

来源:互联网 发布:数控车设计图和编程 编辑:程序博客网 时间:2024/05/24 04:28

例子阐述:通过三层架构来完成输入的数字必须是整型,如果不符合,抛出异常且日志记录


自定义异常;


public class LovoException extends Exception{public LovoException(){}public LovoException(Exception ex){super(ex);}public LovoException(String msg){super(msg);}public void writeLog(){System.out.println("写日志的实现");this.printStackTrace();}}

DAO层:

import java.util.InputMismatchException;import java.util.Scanner;//持久类public class DAO {public int read()throws LovoException{System.out.println("读取数据库查询");Scanner scan = new Scanner(System.in);int num = 0;try{num = scan.nextInt();}catch(InputMismatchException ime){throw new LovoException(ime);}return num;}}

业务层:


//业务类public class Service {public boolean login()throws LovoException{try{System.out.println("页面数据的处理");}catch(Exception ex){throw new LovoException();}//去持久层查找数据int num = new DAO().read();//根据查找的结果,判断返回真假if(num != 0){return true;}else{return false;}}}

GUI层:


//界面类(10个)public class GUIClass {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("接受页面数据");//业务处理boolean flag = false;try{ flag = new Service().login();}catch(LovoException le){le.writeLog();}//根据业务处理的结果,跳转页面if(flag){System.out.println("成功页面");}else{System.out.println("失败页面");}}}


效果一:

接受页面数据
页面数据的处理
读取数据库查询
1.0
com.lovo.exception.LovoException: java.util.InputMismatchException
at com.lovo.three.DAO.read(DAO.java:19)
写日志的实现
失败页面
at com.lovo.three.Service.login(Service.java:15)
at com.lovo.three.GUIClass.main(GUIClass.java:17)
Caused by: java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at com.lovo.three.DAO.read(DAO.java:17)
... 2 more

效果二:

接受页面数据
页面数据的处理
读取数据库查询
10
成功页面


原创粉丝点击