第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼有拋出異常,但是運行是沒有顯示異常語句,是什么情況

代碼有拋出異常,但是運行是沒有顯示異常語句,是什么情況

正在回答

4 回答

package com.imooc.proj_1;

import java.util.Scanner;

public class BookManagerEasy {
?? ?private static Scanner console = new Scanner(System.in);

?? ?public static void main(String[] args) {
?? ??? ?//定義”圖書“數(shù)組
?? ??? ?String[] books = { "C語言", "數(shù)據(jù)結(jié)構(gòu)", "匯編語言", "高數(shù)", "大學(xué)語文", "毛概" };
?? ??? ?while (true) {
?? ??? ??? ?System.out.println("輸入命令:1-按照名稱查找圖書;2-按照序號查找圖書");
?? ??? ??? ?String book;
?? ??? ??? ?try {
?? ??? ??? ??? ?//取得整型命令
?? ??? ??? ??? ?int command = inputCommand();
?? ??? ??? ??? ?//根據(jù)不同命令值,進(jìn)行不同操作
?? ??? ??? ??? ?switch (command) {
?? ??? ??? ??? ?case 1://按照圖書名稱選擇圖書
?? ??? ??? ??? ??? ?book = getBookByName(books);
?? ??? ??? ??? ??? ?System.out.println("book:" + book);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case 2://按照圖書序號(數(shù)組下標(biāo))選擇圖書
?? ??? ??? ??? ??? ?book = getBookByNumber(books);
?? ??? ??? ??? ??? ?System.out.println("book:" + book);
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?case -1://返回值為-1,說明輸入有誤
?? ??? ??? ??? ??? ?System.out.println("命令輸入錯誤!請根據(jù)提示輸入數(shù)字命令!");
?? ??? ??? ??? ??? ?continue;
?? ??? ??? ??? ?default://其他值的命令均認(rèn)為是錯誤命令
?? ??? ??? ??? ??? ?System.out.println("命令輸入錯誤!");
?? ??? ??? ??? ??? ?continue;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?break;//退出程序
?? ??? ??? ?} catch (Exception bne) {
?? ??? ??? ??? ?//捕獲”圖書不存在異?!皶r,要求重新輸入命令
?? ??? ??? ??? ?System.out.println(bne.getMessage());
?? ??? ??? ??? ?continue;
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?//按照圖書名稱查詢圖書
?? ?private static String getBookByName(String[] books)
?? ??? ??? ?throws Exception {
?? ??? ?System.out.println("輸入圖書名稱:");
?? ??? ?//獲取輸入的圖書名稱
?? ??? ?String name = console.next();
?? ??? ?for (int i = 0; i < books.length; i++) {
?? ??? ??? ?if (name.equals(books[i]))
?? ??? ??? ??? ?//輸入的名稱與某一圖書名稱匹配,返回該圖書
?? ??? ??? ??? ?return books[i];
?? ??? ?}
?? ??? ?//若無匹配,拋出”圖書不存在異?!?br />?? ??? ?throw new Exception("圖書不存在!");
?? ?}

?? ?//根據(jù)圖書序號(數(shù)組下標(biāo))查詢圖書
?? ?private static String getBookByNumber(String[] books)
?? ??? ??? ?throws Exception {
?? ??? ?while (true) {
?? ??? ??? ?System.out.println("輸入圖書序號:");
?? ??? ??? ?try {
?? ??? ??? ??? ?//獲取輸入的圖書序號(數(shù)組下標(biāo))
?? ??? ??? ??? ?int index = inputCommand();
?? ??? ??? ??? ?//若返回值為-1
?? ??? ??? ??? ?if(index == -1){
?? ??? ??? ??? ??? ?System.out.println("命令輸入錯誤!請根據(jù)提示輸入數(shù)字命令!");
?? ??? ??? ??? ??? ?continue;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?//若不出現(xiàn)”數(shù)組下標(biāo)越界異?!?,則返回相應(yīng)位置的圖書
?? ??? ??? ??? ?String book = books[index];
?? ??? ??? ??? ?return book;
?? ??? ??? ?} catch (ArrayIndexOutOfBoundsException e) {
?? ??? ??? ??? ?//輸入的序號不存在(引發(fā)”數(shù)組下標(biāo)越界異?!埃瑒t拋出”圖書不存在異?!?br />?? ??? ??? ??? ?Exception bookNotExists = new Exception("圖書不存在!");
?? ??? ??? ??? ?bookNotExists.initCause(e);
?? ??? ??? ??? ?throw bookNotExists;
?? ??? ??? ?}
?? ??? ?}
?? ?}

?? ?//從控制臺輸入命令,用于輸入命令和輸入圖書序號
?? ?private static int inputCommand(){
?? ??? ?int command;
?? ??? ?try {
?? ??? ??? ?command = console.nextInt();
?? ??? ??? ?return command;
?? ??? ?} catch (Exception e) {
?? ??? ??? ?//若輸入字符型或者字符串,則拋出異常,捕獲該異常,拋出”錯誤命令異?!?br />?? ??? ??? ?console = new Scanner(System.in);
?? ??? ??? ?//返回-1
?? ??? ??? ?return -1;
?? ??? ?}
?? ?}
}

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Autismdj 提問者

非常感謝!
2016-05-25 回復(fù) 有任何疑惑可以回復(fù)我~
#2

慕粉3402886

大神我想問下這里private static Scanner console = new Scanner(System.in);為什么要static呢? 還有每次獲取用戶輸入的值不用每次寫 .next()嗎? 剛開始學(xué) 不懂
2016-05-31 回復(fù) 有任何疑惑可以回復(fù)我~
#3

怒放的生命012 回復(fù) 慕粉3402886

可以直接引用,不用再定義了
2016-06-03 回復(fù) 有任何疑惑可以回復(fù)我~
#4

wshyzx

請教, throw new Exception("圖書不存在!");你這里為什么能直接傳參呢? for (int i = 0; i < books.length; i++) { if (name.equals(books[i])) return books[i]; } //若無匹配,拋出”圖書不存在異常“ throw new Exception("圖書不存在!"); 最后一句throw和前面的for()沒有if else關(guān)系吧?這樣直接寫在后面能表示那種關(guān)系嗎?
2016-07-20 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

package imooc.com;


import java.util.Scanner;


public class Name {


public Name() {


}


public void findName(String[] book) throws Exception {

System.out.println("請輸入圖書名:");

Scanner scan = new Scanner(System.in);

try {

String name = scan.next();

for (int i = 0; i < book.length; i++) {

if (name.equals(book[i]))

System.out.println("book:" + book[i]);

}

} catch (Exception e) {

throw new Exception("圖書不存在!");

}

}


public void findId(String[] book) throws Exception {

System.out.println("請輸入圖書序號:");

Scanner scan = new Scanner(System.in);

try {

int i = scan.nextInt();

if (i >= 0 && i < book.length) {

System.out.println("book:"+book[i]);

}

} catch (Exception e) {

throw new Exception("圖書不存在!");

}

}


}

********************************

package imooc.com;


import java.util.Scanner;


public class Main {


public static void main(String[] args) {

String[] book = { "高數(shù)", "數(shù)據(jù)結(jié)構(gòu)", "英語", "c++" };


while (true) {

int i;

System.out.println("請按照提示輸入:1-根據(jù)序號查書,2-根據(jù)書名查書");

try {

Scanner scan = new Scanner(System.in);

i = scan.nextInt();

Name n = new Name();

switch (i) {

case 1:

try {

n.findId(book);

} catch (Exception e) {

System.out.println(e.getMessage());

continue;

}

break;

case 2:

try {

n.findName(book);

} catch (Exception e) {

System.out.println(e.getMessage());

continue;

}

break;

default:

break;

}

} catch (Exception e) {

System.out.println("命令輸入錯誤,請根據(jù)提示輸入!");

continue;


}

}

}

}


0 回復(fù) 有任何疑惑可以回復(fù)我~

可以看看代碼嗎?

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Autismdj 提問者

代碼發(fā)在下面了
2016-05-24 回復(fù) 有任何疑惑可以回復(fù)我~

試試在軟件上自己敲一遍

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Autismdj 提問者

就是自己在ecplise上寫的
2016-05-22 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

代碼有拋出異常,但是運行是沒有顯示異常語句,是什么情況

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號