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

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

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

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

????public?static?void?main(String[]?args)?throws?Nobook?{
????????//?TODO?自動生成的方法存根
????????String[]?book=?{"高數(shù)","英語","JAVA","信號"};
????????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-按照名稱查找圖書;2-按照序號查找圖書");
????????????int?a=in.nextInt();
????????????switch(a)?{
????????????case?1:
????????????????findname(book);
????????????????break;
????????????case?2:
????????????????findnumber(book);
????????????????break;
????????????????
????????????}
????????????in.close();
????????}catch(InputMismatchException?e)?{
????????????System.out.println("請輸入整數(shù)?。。?);
????????????findways(book);
????????}
????}
????//按書名查找
????public?void?findname(String[]?book)?throws?Nobook{
????????Scanner?in=new?Scanner(System.in);
????????????System.out.println("輸入圖書名稱:");
????????????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);
????????????}
????}
????//按序號查找
????public?void?findnumber(String[]?book)?throws?Nobook{
????????Scanner?in=new?Scanner(System.in);
????????????System.out.println("輸入圖書序號:");
????????????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("請輸入整數(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("圖書不存在!");
????}
}

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

正在回答

1 回答

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

0 回復 有任何疑惑可以回復我~
#1

劉老A 提問者

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

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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