我写的事例,欢迎讨论

来源:1-9 经验总结

无名氏2015

2018-11-15 16:14

package com.exception;
import java.util.*;

public class Test {

    String[] book = {"高数","英语","语文","数据","java"};
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
        int receive = scanner.nextInt();
        Test test = new Test();
        try {
            switch(receive) {
                case 1:
                    test.book();
                    break;
                case 2:
                    test.num();
                    break;
                default:
                    throw new NoBookException("命令输入错误!请根据提示输入数子命令!");
            }
        }catch(NoBookException e) {
            e.printStackTrace();
            System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
        }
    }
    
    public void book() throws NoBookException{
        System.out.println("输入图书名称:");
        Scanner sb = new Scanner(System.in);
        String name = sb.next();
        boolean flag = false;
        for(String bk:book) {
            if(name.equals(bk)) {
                flag = true;
                break;
            }
        }
        if(flag) {
            System.out.println("book:"+name);
        }else {
            throw new NoBookException("图书不存在!");
        }
    }
    
    public void num() throws NoBookException{
        System.out.println("输入图书序号:");
        Scanner sn = new Scanner(System.in);
        int i = sn.nextInt();
        String str = book[i-1];
        if(str == null || str.equals("")) {
            throw new NoBookException("图书不存在!");
        }else {
            System.out.println("book:"+str);
        }
    }
}

写回答 关注

3回答

  • 慕码人9302225
    2018-12-05 22:44:41

    没有异常提示语句啊

    慕码人930...

    不对 看错了

    2018-12-05 22:49:01

    共 1 条回复 >

  • CDH_辉
    2018-11-15 17:27:03

    为什么,你在try{}用到book()方法,而这个方法后面才定义,在main方法中,是从上到下执行的,虽然你有用try铺抓异常,但最好还是先定义后使用;

    无名氏201...

    book()不是后面定义,它本就是类的一个方法属性,通过test类调用方法属性,分类写更明确些

    2018-11-15 17:32:20

    共 1 条回复 >

  • CDH_辉
    2018-11-15 17:20:41

    NoBookException??这个是你自己定义的异常吗?


    无名氏201...

    是的,代码没贴出来

    2018-11-15 17:26:44

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题