为了账号安全,请及时绑定邮箱和手机立即绑定

java第三季,异常处理?图书查询系统 (好像要用try,catch处理异常,完全没懂,求指导)

java第三季,异常处理?图书查询系统 (好像要用try,catch处理异常,完全没懂,求指导)

holy_yakutsk 2017-04-18 09:51:57
package tushu; public class Shu extends Tushu{ public Shu(int id,String name){ this.name=name; this.id=id; } }package tushu; public class Tushu { int id; String name; }package tushu; import java.util.Scanner; public class Use { public static void main(String[] args) { // TODO 自动生成的方法存根 Tushu Tushu[] = { new Shu(1,"数学"), new Shu(2,"语文"), new Shu(3,"英语"), new Shu(4,"物理") }; System.out.println("输入命令:/t1:按照名称查找图书/t2:按照序号查找图书"); Scanner input = new Scanner(System.in); int id=input.nextInt(); if(id==1){ System.out.print("输入书名:"); String ru=input.next(); for(int i=0;i<Tushu.length;i++){ if(Tushu[i].name.equals(ru)){ System.out.println("book:"+Tushu[i].name); System.exit(0); } } System.out.println("图书不存在"); Use.main(args); }else if(id==2){ System.out.print("输入序号:"); int e=input.nextInt(); for(int i=0;i<Tushu.length;i++){ if(Tushu[i].id==e){ System.out.println("book:"+Tushu[i].name); System.exit(0); } } System.out.println("图书不存在"); Use.main(args); }else{ System.out.println("输入错误,请根据提示输入。"); Use.main(args); } } }能正常运行,但是异常处理,用try{}catch(){}包围不会,求指导
查看完整描述

1 回答

?
慕勒0069038

TA贡献143条经验 获得超39个赞

我感觉这个程序只有2个nextint的地方可能出错 用InputMismatchException 错误可以捕获

查看完整回答
1 反对 回复 2017-04-18
  • qq_慕慕睿睿
    qq_慕慕睿睿
    666
  • holy_yakutsk
    holy_yakutsk
    我也觉得只有输入时类型的错误不知道怎么弄
  • 慕勒0069038
    慕勒0069038
    你想想需要什么 如果是输入错误再次提示输入的话 就可以试试这样 int b; while(true){ try{ System.out.println("提示"); Scanner sc = new Scanner(System.in); b =sc.nextInt(); break;//用于跳出while(true) }catch(InputMismatchException e){ System.out.println("一个错误的提示"); } }
?
风中打伞的小孩

TA贡献73条经验 获得超20个赞

try里面放置自己感觉会出错的代码,catch里面放置怎么处理的代码。

简单的,在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法,它是需要异常处理的,因为字符串中可能会出现非数字的情况。

这个例子里,输入序号那里,如果用户输入的序号大于数组长度了,不是就会发生数组越界了吗,不过,你那样处理不会。

查看完整回答
反对 回复 2017-04-18
  • 1 回答
  • 0 关注
  • 2035 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信