拋出不了異常。
求助:我這個程序的按照名稱查找拋出不了異常。
package?com.imooc.exception_test; import?java.util.Scanner; public?class?Book?{ public?static?void?main(String[]?args)?{ //?用字符串?dāng)?shù)組保存書籍信息 String[]?book?=?{?"數(shù)據(jù)結(jié)構(gòu)",?"Java實戰(zhàn)開發(fā)",?"html5",?"javascript",?"高等數(shù)學(xué)"?}; Book?myBook?=?new?Book(); //?處理IO System.out.println("按照命令查找書籍:1-按照名稱查找書籍;2-按照序號查找書籍"); Scanner?scanner1?=?new?Scanner(System.in); try?{ int?k?=?scanner1.nextInt(); if?(k?==?1)?{ System.out.println("請輸入書籍的名字:"); Scanner?scanner2?=?new?Scanner(System.in); String?c?=?scanner2.nextLine(); myBook.findByname(c,?book); } if?(k?==?2)?{ System.out.println("請輸入書籍的序號"); Scanner?scanner3?=?new?Scanner(System.in); int?c?=?scanner3.nextInt(); myBook.findByIndex(c,?book); } }?catch?(Exception?e)?{ //?TODO:?handle?exception System.out.println("命令輸入錯誤,請按照提示輸入數(shù)字命令"); } } //?按名查找,拋出“書名不存在異?!? public??void?findByname(String?input,?String?book[])?{ try?{ for?(int?i?=?0;?i?<?book.length;?i++)?{ if?(book[i]?==?input)?{ System.out.println("book:"?+?book[i].toString()); } } }?catch?(Exception?e)?{ //?TODO:?handle?exception e.printStackTrace(); System.out.println("書名不存在異常"); } } //?按序號查找,拋出“序號不存在異?!? public??void?findByIndex(int?index,?String?book[])?{ try?{ System.out.println("book:"?+?book[index].toString()); }?catch?(Exception?e)?{ //?TODO:?handle?exception e.printStackTrace(); System.out.println("這本書的序號不存在異常!"); } } }
2014-11-17
這里判斷字符串的時候不要用==,要用equals去比較,將代碼中40的==換成equals就可以了。這里并不是拋出異常,而是判斷全部是false