为什么跳不入rentway1()的catch中。

来源:1-9 经验总结

qq_零_14

2016-07-27 08:21

package com.imooc;

import java.util.Scanner;



public class library {


public static void main(String[] args) {

   library bo=new library();

   bo.book();

   }

 

public void book(){

System.out.println("欢迎来到图书馆借书系统!");

System.out.println("请输入命令:1.按照名称查找图书。2.按照序列号查找图书");

   try{

    Scanner k=new Scanner(System.in);

int one=k.nextInt();

  switch(one){

   case 1:

     rentway1();

     break;

   case 2:

     rentway2();

     break;

   default:

    System.out.println("你输入的结果有误");

    

   }

  

       }catch(Exception e){

       

        System.out.println("请输入正确数值");

        book();

       }}

public void rentway1(){

String[] names={"数学","语文","英语","物理","化学","生物"};

System.out.println("欢迎来到图书馆名称查找系统");

Scanner k1=new Scanner(System.in);

String two=k1.next();

try{

switch(two){

case"数学":

System.out.println("你的图书已找到:"+two);

break;

case"语文":

System.out.println("你的图书已找到:"+two);

break;

case"英语":

System.out.println("你的图书已找到:"+two);

break;

case"化学":

System.out.println("你的图书已找到:"+two);

break;

   case"物理":

System.out.println("你的图书已找到:"+two);

break;

   case"生物":

System.out.println("你的图书已找到:"+two);

break;

default:

System.out.println("你的图书找不到");

 

 

}

}catch(RuntimeException e){

System.out.println("你输入有误!");

book();

}

}

public void rentway2(){

String[] names={"数学","语文","英语","物理","化学","生物"};

System.out.println("欢迎来到图书馆序列号查找系统");

try{

  Scanner k3=new Scanner(System.in);

  int three=k3.nextInt();

  System.out.println("你输入的书籍为:"+names[three-1]);

  

  }catch(Exception e){

  

  System.out.println("你输入有误!");

  book();

  }

  

}

}


写回答 关注

4回答

  • 望远
    2016-07-27 21:24:59

    好吧,我忘了java 1.7版本之后switch参数还支持String。。

    你的rentway1方法的try块中没有产生异常,当然捕获不到啊。。

  • 望远
    2016-07-27 14:19:05

    switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型。。

    qq_零_1...

    我输入正确科目,它能判断正确错误,但是进不了catch

    2016-07-27 21:09:30

    共 1 条回复 >

  • 慕丝0876984
    2016-07-27 13:27:37

    因为从控制台输入的是字符,没有什么异常可以捕获

  • 慕丝0876984
    2016-07-27 08:55:49

    我感觉 你可以catch(Exception e)试一下  

    qq_零_1...

    同样试过

    2016-07-27 09:18:44

    共 1 条回复 >

Java入门第三季

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

409792 学习 · 4340 问题

查看课程

相似问题