本实例中首先要定义两个异常类
public class ErrorOrder extends Exception {
public ErrorOrder(){
}
public ErrorOrder(String message ){
super(message);
}
}
public class NoExist extends Exception {
public NoExist(){
}
public NoExist(String message){
super(message);
}
}
将两个异常类定义完毕之后我们需要在之后的方法中抛出异常
首先定义一个我们的功能实现类Bookmanage在该类中定义了一个List用于存放书籍,为了方便起见,我创建的AddBooks方法将一些BOOK对象存储到我们的书籍list中
public class Bookmanage {
private List<Book> books= new ArrayList<Book>(); ;
private Scanner scanner =new Scanner(System.in);
public void AddBooks(){
Book Book1 = new Book("1","高数");
Book Book2 = new Book("2","离散数学");
Book Book3 = new Book("3","大学语文");
Book Book4 = new Book("4","大学英语");
books.add(Book1);
books.add(Book2);
books.add(Book3);
books.add(Book4);
}
在顶级菜单中抛出异常ErrorOrder
public int choosemethod() throws ErrorOrder{
System.out.println("请选择图书查询方式");
System.out.println("1-以书名方式查询");
System.out.println("2-以编号方式查询");
String input = scanner.next();
if(!input.equals("1")&&!input.equals("2")){
throw new ErrorOrder("请输入正确的数字命令");
}else{
int a = Integer.parseInt(input);
return a;
}
}
在图书搜索过程中抛出异常NoExist
public void SearchbyBookName()throws NoExist{
System.out.println("请输入要搜索的图书名称");
String input = scanner.next();
int flag = 0;
for (int i=0 ;i<books.size();i++){
if (input.equals(books.get(i).getName())){
System.out.println("已找到您所搜索的图书图书名称为:"+books.get(i).getName()+"图书ID为"+books.get(i).getID());
flag =1;
break;
}
}
if (flag==0){
throw new NoExist("您搜索的图书不存在");
}
}
public void SearchbyBookID(int a) throws NoExist{
String input =Integer.toString(a);
int flag = 0;
int Id = Integer.parseInt(input);
for (int i = 0;i<books.size();i++){
if (input.equals(books.get(i).getID())){
System.out.println("已找到您所搜索的图书图书名称为:"+books.get(i).getName()+"图书ID为"+books.get(i).getID());
flag = 1;
break;
}
}
if (flag==0){
throw new NoExist("您搜索的图书不存在");
}
}
public int inputnum() throws ErrorOrder{
String input = scanner.next();
try{
int num = Integer.parseInt(input);
return num;
}catch(Exception e){
throw new ErrorOrder("请输入正确的数字命令");
}
}
入口函数
public static void main(String[] args) {
Bookmanage BM = new Bookmanage();
BM.AddBooks();
while(true){
try{
int a = BM.choosemethod();
if(a==1){
try{
BM.SearchbyBookName();
break;
}catch(NoExist e){
System.out.println(e.getMessage());
}
}else if(a==2){
System.out.println("请输入所要查询的书籍ID");
int b =BM.inputnum();
try{
BM.SearchbyBookID(b);
break;
}catch(NoExist e){
System.out.println(e.getMessage());
}
}
}catch(ErrorOrder e){
System.out.println(e.getMessage());
}
}
}
在本实例中,将自定义异常,以及异常的抛出,Try catch语句基本实现,代码仍有需要优化之处,望多多交流
点击查看更多内容
3人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦