亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

作業里面的異常怎么寫啊,寫了半天還是沒有實現出來,求各路大神指點一下啊。。萬分感激,看了好幾遍異常處理的視頻,但是這個題的異常處理還是不太會,只把其他的代碼實現了,求大神添加一下這個代碼的異常處理,以及講解一番,謝謝~~~

package?com.imooc;

import?java.util.Scanner;

/*模擬借書系統:

?*?1.定義字符串數組保存圖書信息

?*?2.提示用戶輸入,分別按“書名”和“圖書序號”查找圖書

?*?3.根據輸入信息進行適當的異常處理

?*????a.如果輸入類型錯誤,拋出“錯誤命令異?!保⑻崾局匦螺斎?
?*????b.如果書名不存在,拋出“圖書不存在異常”,并提示重新輸入

?*????c.如果圖書序號超過字符串數組范圍,拋出“圖書不存在異常”,并提示重新輸入

?*????*/

public?class?LibrarySys?{

public?static?void?main(String?[]args)throws?LibraryException{

?Book?[]allbook={new?Book(1001,"Java"),new?Book(1002,"C++"),

???new?Book(1003,"linux"),new?Book(1004,"C#"),

???new?Book(1005,"PHP"),new?Book(1006,"HTML")};

?//用一個Book類的數組存儲所有圖書的圖書庫allbook,本庫共創建了6個圖書對象

?System.out.println("請輸入查詢圖書的方式:");

?System.out.println("1.按照書名查找圖書");

?System.out.println("2.按照圖書編碼查找圖書");

?//兩種查詢方式

??????//可能出現的異常:用戶輸入類型錯誤,拋出“錯誤命令”異常

?try{

??Scanner?input=new?Scanner(System.in);

???int?userC=input.nextInt();//把用戶輸入的要查詢方式保存在userC中

???if(userC==1){

????System.out.println("請輸入您要查詢的圖書名稱:");

????String?userBNa=input.next();

????//把用戶輸入的要查詢的圖書名字保存在userBNa中

????Query?userQ=new?Query();//創建一個用戶查詢對象userQ

????

????userQ.query(allbook,?userBNa);//調用按照書名查詢的方法

????

????}

???else?if(userC==2){

????System.out.println("請輸入您要查詢的圖書編碼:");

????int?userBId=input.nextInt();

????//把用戶輸入的要查詢的圖書編碼保存在userBId中

????Query?userQ=new?Query();//創建一個用戶查詢對象userQ

????userQ.query(allbook,?userBId);;//調用按照圖書編碼查詢的方法

???}

?}catch(Exception?e){

??e.printStackTrace();

??LibraryException?newLE=new?LibraryException("錯誤命令異常!");

??throw?newLE;

?}

?}

}
package?com.imooc;

/*自定義一個借書系統的異常*/

public?class?LibraryException?extends?Exception?{

?//創建一個無參數的構造器

????public?LibraryException(){

????}

????//創建一個有參數的構造器

????public?LibraryException(String?message){

?????super(message);//調用父類Exception的含參數的構造器

????}

}

package?com.imooc;
/*創建一個圖書類
?*?該類包括兩個屬性:
?*?圖書的編碼id,圖書的書名name.
?*?此類中可以修改圖書的id,name
?*?*/
public?class?Book?{
?public?int?id;//圖書編碼
?public?String?name;//圖書名稱
?public?int?getBookId(){
??return?id;
?}
?public?void?setBookId(int?id){
??this.id=id;
?}
?public?String?getBookName(){
??return?name;
?}
?public?void?setBookName(String?name){
??this.name=name;
?}
?public?Book(int?id,String?name){
??this.id=id;
??this.name=name;
?}
}

package?com.imooc;
/*圖書查詢類:
?*?包含兩個方法
?*?query(Book?[]book,int?id)是按照圖書id查詢圖書
?*?query(Book?[]book,String?name)是按照圖書name查詢圖書
?*?查詢結果均為:圖書編碼:圖書名稱
?*?*/
public?class?Query{
?//兩種查詢方式的輸入均為,Book類的數組,以及圖書編碼id,圖書名稱name
public?void?query(Book?[]book,int?id){
?//遍歷整個圖書庫book[],用id和每一個圖書的id相比較,找到相同id則輸出結果
?for(int?i=0;i<book.length;i++){
??if(book[i].getBookId()==id)
???System.out.println(id+":"+book[i].getBookName());
?}
}
public?void?query(Book?[]book,String?name){
?//遍歷整個圖書庫book[],用name和每一個圖書的name相比較,找到相同name則輸出結果
?for(int?i=0;i<book.length;i++){
??if(name.equals(book[i].getBookName()))
???System.out.println(book[i].getBookId()+":"+name);
?}
}
}

正在回答

2 回答

我的代碼是這樣滴。

import java.util.Scanner;


/**

?* 模擬圖書管理系統

?* @author Administrator

?*

?*/

public class BookSystem {


public static void main(String[] args) {


BookSystem bookSystem = new BookSystem();

String[] books = bookSystem.getBooks();

bookSystem.findBook(books);

}


/**

* 圖書源

*/

private String[] getBooks()

{

String[] books = {"c語言程序設計","c++面向對象編程","java編程思想","java設計模式","java高級進階"};

return books;

}


/**

* 查找圖書

*/

private void ?findBook(String[] books)

{

System.out.println("請輸入序號查找圖書:1.按照書名查找 ?2.按照序號查找");

Scanner scanner = new Scanner(System.in);

String seq = scanner.next();

boolean isInt = isInteger(seq);


if(isInt)

{


if(Integer.parseInt(seq) == 1)

{

//按照書名查找

findBookByName(books);

}

else if(Integer.parseInt(seq) == 2)

{

//按照序號查找

findBookBySeq(books);

}

else

{

try {

throw new Exception("輸入命令錯誤,請輸入相應的序號");

} catch (Exception e) {

//e.printStackTrace();

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

findBook(books);

}

}

}

else

{

System.out.println("輸入命令錯誤,請輸入相應的序號");

findBook(books);

}

}


/**

* 根據圖書序號查詢圖書

*/

private void findBookBySeq(String[] books)

{

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

Scanner scanner = new Scanner(System.in);

String seq = scanner.next();

boolean isInt = isInteger(seq);

if(isInt)

{

if(Integer.parseInt(seq)<0 || Integer.parseInt(seq)>books.length)

{

try {

throw new Exception("您查找的圖書不存在");

} catch (Exception e) {

e.printStackTrace();

findBookBySeq(books);

}

}

else

{

System.out.println("您選擇的圖書是"+books[Integer.parseInt(seq)]);

}

}

else

{

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

findBookBySeq(books);

}

}


/**

* 按書名查找圖書

*/

private void findBookByName(String[] books)

{

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

Scanner scanner = new Scanner(System.in);

String bookName = scanner.next();

boolean isExist = false;

for(String book : books)

{

if(bookName.equals(book))

{

isExist = true;

}

}


if(isExist)

{

System.out.println("您選擇的圖書是"+bookName);

}

else

{

try {

throw new Exception("沒有找到該圖書");

} catch (Exception e) {

//e.printStackTrace();

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

findBookByName(books);

}

}

}


/**

* 判斷輸入的字符竄是否為整型

*/

private boolean isInteger(String input){

if (input == null || "".equals(input))

return false ;

if ( input.toString().matches("[0-9]+"))?

return true ;

else

return false ;

}


}


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

try{

if(a){?

????? ? throw new Exception("錯誤命令異常");

}else?if(b){

????throw?new Exception("圖書不存在異常");

}else?if(c){

????throw?new Exception("圖書序號不存在異常");

}else{

????throw?new Exception("其他異常");

}

}catch(exception e){

????e.printStackTrace();

}

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

舉報

0/150
提交
取消

作業里面的異常怎么寫啊,寫了半天還是沒有實現出來,求各路大神指點一下啊。。萬分感激,看了好幾遍異常處理的視頻,但是這個題的異常處理還是不太會,只把其他的代碼實現了,求大神添加一下這個代碼的異常處理,以及講解一番,謝謝~~~

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號