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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么在捕捉到異常后調(diào)用findways(book)會(huì)出錯(cuò)

package?findbook;
import?java.util.InputMismatchException;
import?java.util.Scanner;
public?class?Find?{

????public?static?void?main(String[]?args)?throws?Nobook?{
????????//?TODO?自動(dòng)生成的方法存根
????????String[]?book=?{"高數(shù)","英語(yǔ)","JAVA","信號(hào)"};
????????Find?book1=new?Find();
????????book1.findways(book);
????}
????//查找方法
????public?void?findways(String[]?book)?throws?Nobook{
????????Scanner?in=new?Scanner(System.in);
????????try?{
????????????System.out.println("輸入命令:1-按照名稱(chēng)查找圖書(shū);2-按照序號(hào)查找圖書(shū)");
????????????int?a=in.nextInt();
????????????switch(a)?{
????????????case?1:
????????????????findname(book);
????????????????break;
????????????case?2:
????????????????findnumber(book);
????????????????break;
????????????????
????????????}
????????????in.close();
????????}catch(InputMismatchException?e)?{
????????????System.out.println("請(qǐng)輸入整數(shù)?。。?);
????????????findways(book);
????????}
????}
????//按書(shū)名查找
????public?void?findname(String[]?book)?throws?Nobook{
????????Scanner?in=new?Scanner(System.in);
????????????System.out.println("輸入圖書(shū)名稱(chēng):");
????????????String?a=in.nextLine();
????????????boolean?flag=false;
????????????try?{
????????????for(int?i=0;i<book.length;i++)?{
????????????????if(a.equals(book[i]))?{
????????????????????System.out.println("book:"+book[i]);
????????????????????flag=true;
????????????????????break;
????????????????}
????????????}
????????????in.close();
????????????if(!flag)?{
????????????????throw?new?Nobook();
????????????}
????????????}catch(Nobook?e){????
????????????????findways(book);
????????????}
????}
????//按序號(hào)查找
????public?void?findnumber(String[]?book)?throws?Nobook{
????????Scanner?in=new?Scanner(System.in);
????????????System.out.println("輸入圖書(shū)序號(hào):");
????????????int?a=in.nextInt();
????????????boolean?flag=false;
????????????try?{
????????????for(int?i=0;i<book.length;i++)?{
????????????????if(a==i)?{
????????????????????System.out.println("book:"+book[i]);
????????????????????flag=true;
????????????????????break;
????????????????}
????????????}
????????????in.close();
????????????if(!flag)?{
????????????????throw?new?Nobook();
????????????}
????????????}catch(InputMismatchException?e)?{
????????????????System.out.println("請(qǐng)輸入整數(shù)!?。?);
????????????????findways(book);
????????????}catch(Nobook?e)?{
????????????????System.out.println(e.getMessage());
????????????????findways(book);
????????????}
????}
}

//自定義異常
package?findbook;

public?class?Nobook?extends?Exception{
????public?Nobook(){
????????System.out.println("圖書(shū)不存在!");
????}
}

https://img1.sycdn.imooc.com//5bde60bf0001272004310158.jpg

正在回答

1 回答

Scanner作為掃描對(duì)象的釋放速度不夠快,遠(yuǎn)遠(yuǎn)比不上你的程序運(yùn)行速度,所以你在程序里面多次創(chuàng)建和關(guān)閉Scanner,造成資源還沒(méi)有來(lái)得及釋放的時(shí)候,程序就運(yùn)行到該處了。這種情況,你可以將Scanner在main()中創(chuàng)建對(duì)象,將引用作為參數(shù)給各個(gè)函數(shù)用,然后在main()最后一同釋放。

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

劉老A 提問(wèn)者

謝謝!我試了一下,確實(shí)可以;這個(gè)代碼我把每個(gè)方法里的in.close()去掉好像也可以運(yùn)行成功。
2018-11-04 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么在捕捉到異常后調(diào)用findways(book)會(huì)出錯(cuò)

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

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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