首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >模拟借书系统(java 异常练习)

模拟借书系统(java 异常练习)

作者头像
Cell
发布于 2022-02-25 16:52:04
发布于 2022-02-25 16:52:04
7420
举报
文章被收录于专栏:Cell的前端专栏Cell的前端专栏

实现代码

这里的异常主要是InputMismatchException, 可以直接捕获该异常,我直接捕获了父类异常。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

package cn.lruihao.Exception; import java.util.Scanner; /** * @author 李瑞豪 * 借书系统(异常练习) */ public class ExceptionDemo { private final Book[] books = { new Book("数据结构"), new Book("Java"), new Book("php"), new Book("c") }; public static void main(String[] args) { System.out.println("欢迎来到借书系统!"); ExceptionDemo jieshu= new ExceptionDemo(); jieshu.menu(); } public void menu() { System.out.println("输入命令:1. 书名查找;\t2. 序号查找;"); //初始化并捕获用户输入 Scanner sc = new Scanner(System.in); // 捕获异常 try { int id =sc.nextInt(); if(id==1||id==2) { inquire(id); }else { System.out.println("输入错误!请根据提示输入~~");//输入非 1,2 的数字情况 menu(); } }catch (Exception e) {//输入字符为非数字 e.printStackTrace(); System.out.println("输入错误,请输入数字命令~~"); menu(); }finally{ sc.close(); } } private void inquire(int id) { Scanner sc = new Scanner(System.in); if(id==1) { System.out.println("请输入要查找的书名!"); String name=sc.nextLine(); int num=FindName(name); if(num==0?false:true) {//验证书名是否存在 存在则打印 System.out.println("book:"+name+"\t 序号:"+num); //menu();//回到访问起点 也可以去掉终止程序 }else{ System.out.println("图书不存在"); menu(); } sc.close(); }else if(id == 2) { System.out.println("请输入您要查找的序号:"); int id2=sc.nextInt(); FindNum(id2); sc.close(); } } private void FindNum(int num) { try { if(num>=0&&num<books.length) { System.out.println(books[num].getName()); //menu();//回到访问起点 也可以去掉终止程序 }else{ System.out.println("图书不存在"); menu(); } }catch (Exception e) { e.printStackTrace(); System.out.println("输入有误!~~"); } } private int FindName(String name) { int num=0; for(Book i:books) { String name1=i.getName(); if(name1.equals(name)) { return num; } num++; } return 0; } }

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

package cn.lruihao.Exception; public class Book { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Book(String name) { this.name = name; } }

大致运行效果

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 实现代码
  • 大致运行效果
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档