java自学笔记9:异常练习(模拟借书系统)
2017-11-30 14:24
239 查看
代码示例:
创建自定义异常类包customException,创建三种异常类BadCommandException,IdException,NameException
package customException; public class BadCommandException extends Exception{ public BadCommandException(){ } }
package customException; public class IdException extends Exception { public IdException(){ } }
package customException; public class NameException extends Exception { public NameException(){ } }
创建BookList,SearchBook类
package com.vihsuo.www; import java.util.Scanner;//导入输入包 import java.util.Arrays; import customException.*;//导入自定义异常包 import java.util.InputMismatchException; //导入输入不匹配异常 public class BookList { // BookList bookList = new BookList(); int isTure = 0;// 初始化isTure值为0,只有输入存在的书名与序号,isTure值才会变为1 public void Exc() throws BadCommandException { throw new BadCommandException();// 抛出错误命令异常 } public void Exc2() throws NameException { throw new NameException();// 抛出图书名称不存在异常 } public void Exc3() throws IdException { throw new IdException();// 抛出图书Id不存在异常 } String[] book = { "1java从放弃到放弃", "2三体", "3大泼猴", "4七宗罪", "5三国如花传" }; private Scanner selectMode; private Scanner bookNameInput; private Scanner seek; @Override public String toString() { return Arrays.toString(book); } public void showBookList() { System.out.println("当前图书目录:" + this.toString()); } public int selectFromBookId(int bookId) { String bookName = book[bookId]; System.out.println("书名:" + bookName + "\n恭喜您,借阅成功"); return bookId; } public void showUser() { System.out.println("欢迎使用租书系统"); this.showBookList(); System.out.println("请选择您要查找的方式:1按照名称查找图书;2按照序号查找图书"); selectMode = new Scanner(System.in); try { int mode = selectMode.nextInt(); // 用户输入的命令 if (mode == 1) { chooseBookName(); }else if(mode == 2){ chooseBookId(); } try { if(mode != 1 && mode != 2){ //若输入既不为1也不为2 Exc(); //调用mode,抛出BadCommandException异常 /*|*/ } } catch (BadCommandException e) { // TODO: handle exception System.out.println("命令输入错误!请根据提示输入数字命令!"); showUser(); //进行递归 } } catch (Exception e) { // TODO: handle exception System.out.println("命令输入错误!请根据提示输入数字命令!"); showUser();//进行递归,重新输入 } } public void chooseBookName() throws BadCommandException { System.out.println("请输入图书名称:"); bookNameInput = new Scanner(System.in); String bookName = bookNameInput.next();// 输入图书名称 try { if (Name(bookName) == 0) {// 如果书名不存在 Exc2();// 调用Exc2方法,抛出NameException异常 } } catch (NameException e) { // TODO: handle exception System.out.println("图书不存在!"); showUser(); // 调用showUser方法,重新开始 也可进行递归,重新输入图书名称 } } public void chooseBookId() throws BadCommandException { // 定义sacnner2类来用于输入图书序号进行处理 System.out.println("请输入图书序号:"); seek = new Scanner(System.in); try { int xuhao = seek.nextInt(); // 输入图书序号 if (Xuhao(xuhao) == 0) { // 如果序号不存在 Exc3();// 调用Exc3,抛出IdException异常 } } catch (IdException e) { // 捕捉XuHaoException异常 System.out.println("图书不存在!"); showUser(); // 调用showUser,重新开始 也可进行递归,重新输入图书序号 } catch (InputMismatchException e) { // 捕获输入不匹配异常(即不为整数) System.out.println("你应该输入整数!"); chooseBookId();// 递归 } } public int Name(String name) { switch (name) { case "java从放弃到放弃": System.out.println("书名:java从放弃到放弃"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case "三体": System.out.println("书名:三体"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case "大泼猴": System.out.println("书名:大泼猴"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case "七宗罪": System.out.println("书名:七宗罪"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case "三国如花传": System.out.println("书名:三国如花传"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; } return isTure; } public int Xuhao(int xuhao) { switch (xuhao) { case 1: System.out.println("book:java从放弃到放弃"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case 2: System.out.println("book:三体"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case 3: System.out.println("book:大泼猴"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case 4: System.out.println("书名:七宗罪"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; case 5: System.out.println("书名:三国如花传"); System.out.println("恭喜您,借书成功!"); isTure = 1; break; } return isTure; } }
package com.vihsuo.www; public class SearchBook { //主函数 public static void main(String[] args){ BookList bookList = new BookList(); bookList.showUser(); } }
相关文章推荐
- 利用Java异常机制实现模拟借书系统
- 模拟借书系统简易版(慕课网java入门第三季异常)
- 【自学笔记】简单java电话本管理系统v1.0源码
- java打字系统模拟打字练习采用JFrame+IO文件操作+线程源码
- 【java】初识catch-try-finally:模拟借书系统
- 【自学笔记】简单java电话本管理系统v2.0源码
- java自学笔记6:UML简介+阶段练习
- Java基础知识强化之IO流笔记53:IO流练习之 自定义类模拟BufferedReader的readLine()功能案例
- Java基本功练习八(多维数组[二维、三维、模拟评卷系统、九宫格验证])
- 慕课java第三季-异常与异常处理:借书系统
- JAVA自学笔记(四)异常
- Java培训笔记22--自学异常类
- java自学笔记8:异常简介
- 自学Java系列 笔记2 异常处理1
- Java自学笔记(第十天)-异常-异常的处理-throws-throw-多异常处理-自定义异常-throwable类-RunTimeException类-finally-异常在方法继承中的注意事项-
- 黑马程序员——Java练习笔记——异常
- JAVA基础作业练习—自定义异常之模拟ATM
- java自学笔记之面试题银行业务调度系统
- .net系统自学笔记——错误和异常
- Java基础知识强化之IO流笔记55:IO流练习之 自定义类模拟LineNumberReader的获取行号功能案例