初學異常處理,希望和大家互相交流學習
********
自定義異常類:
package com.Bookrent;
public class ExtraException extends Exception{
}
********
Bookrent類:
package com.Bookrent;
public class Book {
private String bookName;
private int bookNum;
public Book(String bookName,int bookNum)
{
this.bookName = bookName;
this.bookNum = bookNum;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public int getBookNum() {
return bookNum;
}
public void setBookNum(int bookNum) {
this.bookNum = bookNum;
}
}
********
主函數(shù):
package com.Bookrent;
import java.util.Scanner;
public class bookrent {
Book[] bookRent =?
{new Book("高數(shù)",1),new Book("數(shù)據(jù)結(jié)構(gòu)",2),new Book("操作系統(tǒng)",3),new Book("數(shù)據(jù)庫",4)};?
//將數(shù)組定義到全局范圍方便其他函數(shù)使用;
public static void main(String[] args) {
// TODO Auto-generated method stub
bookrent br = new bookrent();
br.find();
}
public void find()
{
Scanner input = new Scanner(System.in);
System.out.println("輸入命令:1.按照名稱查找圖書;2.按照序號查找圖書");
int i = input.nextInt();
try
{
if(i == 1)
{
this.searchName();
}
else if(i == 2)
{
this.searchNum();
}
else?
{
throw ?new Exception();
}
}catch(Exception e)
{
input = new Scanner(System.in);//對于輸入有誤的情況不會終止程序運行;
System.out.println("命令輸入錯誤!請根據(jù)提示輸入正確的命令!");
this.find();
}
}
public void searchName()//對于輸入的信息進行判斷并進行有效的處理(try catch)異常處理并循環(huán)
{
System.out.println("請輸入要查詢的書名:");
Scanner input = new Scanner(System.in);
String s = input.next();
try
{
for(Book br:bookRent)//遍歷數(shù)組
{
if(br.getBookName().equals(s))//查看是否有何輸入相同的書名
{
System.out.println("已找到圖書");
System.out.println("圖書:" + s);
this.find();//遍歷后要及時退出否則會強制拋出異常;
}
else
{
throw new Exception();
}
}
}catch(Exception e)
{
System.out.println("查找的圖書不存在");
this.find();
}
}
public void searchNum()
{
System.out.println("請輸入要查詢的書的序號:");
Scanner input = new Scanner(System.in);
try
{
int i = input.nextInt();
for(Book br:bookRent)
{
if(br.getBookNum() == i)
{
System.out.println("已找到圖書");
System.out.println("圖書:" + i);
this.find();
}
else
{
throw new ExtraException();//自定義異常的使用;對于多catch很有幫助;
}
}
}catch(ExtraException e)
{
System.out.println("查找的圖書不存在");
this.find();
}catch(Exception e)
{
System.out.println("命令輸入有誤,請重新輸入!");
this.searchNum();
}
}
}
2015-12-18
可以,厲害