您的位置:首页 > 编程语言 > Java开发

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 异常