博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java学习之借书系统
阅读量:6333 次
发布时间:2019-06-22

本文共 3173 字,大约阅读时间需要 10 分钟。

实现的图书借阅系统要处理用户输入的非法参数,并引导用户正确使用

测试结果:

 

 主要目的就是练习异常处理中的Exception类的使用

使用的相关语法

1 try{2 //可能产生异常的代码块3 }catch(Exception e){4 //处理异常的代码块5 }finally{
//可以根据需要选择6 //最终执行的代码块7 }

实现过程:

创建BorrowBook类

import java.util.InputMismatchException;import java.util.Scanner;public class BorrowBook {        Scanner scn = new Scanner(System.in);}

定义三种异常类:输入的编号没有对应图书的异常、输入的书名没有对应的图书的异常、其他正常异常

private static class commanException extends Exception{    private commanException() {}}private static class bookNumException extends Exception{    private bookNumException() {}}private static class bookNameException extends Exception{    private bookNameException() {}}

创建抛出异常方法,并抛出三种异常

private void commanExc() throws commanException{    throw new commanException();}private void bookNumExc() throws bookNumException{    throw new bookNumException();}private void bookNameExc() throws bookNameException{    throw new bookNameException();}

创建用于存储图书的Box的方法(以两类书为例)

private static String[] bookBox() {    String[] bookBox = new String[] {"高数","线性代数"};    return bookBox;}

创建借书入口方法

private static void borrowBook() throws Exception{    System.out.println("输入命令:1-根据名称查找图书;2-根据序号查找图书");    try {        int inputNum = new BorrowBook().scn.nextInt();        try {            if(inputNum == 0) {                borrowBkByName(bookBox());            }else if(inputNum == 1){                borrowBkByNum(bookBox());            }else {                new BorrowBook().commanExc();            }        }catch(Exception e){            System.out.println("命令输入错误,请根据提示输入数字命令!");            borrowBook();        }        }catch(InputMismatchException eInput) {        System.out.println("命令输入错误,请根据提示输入数字命令!");        borrowBook();    }}

创建依据书名借书的方法

private static void borrowBkByName(String[] books) throws Exception{    System.out.println("输入图书名称:");    String bookName = new BorrowBook().scn.next();    try {        switch(bookName) {        case "高数":            System.out.println("book:" + bookName);            break;        case "线性代数":            System.out.println("book:" + bookName);            break;        default:            new BorrowBook().bookNameExc();        }    }catch(Exception e) {        System.out.println("图书不存在!");        borrowBkByName(books);    }        }

创建依据图书序号借书的方法

private static void borrowBkByNum(String[] books) throws Exception{    System.out.println("输入图书序号:");    try {        int bookNum = new BorrowBook().scn.nextInt();        try {            switch(bookNum) {            case 1:                System.out.println("book:" + books[bookNum]);                break;            case 2:                System.out.println("book:" + books[bookNum]);                break;            default:                new BorrowBook().bookNumExc();            }        }catch(Exception e) {            System.out.println("图书不存在!");            borrowBkByNum(books);        }        }catch(InputMismatchException e) {        System.out.println("命令输入错误,请根据提示输入数字命令!");        borrowBkByNum(books);            }}

用于初始化的main方法

public static void main(String[] args) throws Exception{    borrowBook();    new BorrowBook().scn.close();}

转载于:https://www.cnblogs.com/xinglichao/p/8886313.html

你可能感兴趣的文章
第七章 大网高级 ASA
查看>>
rsync+inotify触发式远程同步
查看>>
优秀设计师应当知道的几大UI设计原则(一)
查看>>
mongodb高级查询
查看>>
struts2.1 struts.devMode BUG解决方案
查看>>
NOVNC 连接问题,Failed to connect to server (code: 1006)
查看>>
InnoDB事务锁之行锁-insert加锁-隐式锁
查看>>
zabbix监控硬盘
查看>>
日本法院裁定三星诉苹果专利侵权案败诉
查看>>
Windows Server 2012R2 桌面体验问题直通车
查看>>
桌面支持--复印证件技巧
查看>>
Silverlight实用窍门系列:50.InkPresenter涂鸦板的基本使用,以及将效果保存为Png图片【附带源码实例】...
查看>>
MySQL数据库经典书籍share
查看>>
给出三个数,要求输出 最大的一个
查看>>
Linux系统中获取帮助的方法及Linux系统的哲学思想
查看>>
在windows环境创建,安装windows服务
查看>>
Liferay 启动过程分析4-初始化Servlet上下文池
查看>>
电脑城论坛出品:前沿技术制作GHOST WES_WIN7 软件选择纯净版V4.0
查看>>
Nginx请求反向代理
查看>>
vim常用操作
查看>>