java 自定义异常 模拟图书查询系统try catch 使用过程出现的问题和总结

本文介绍了一个模拟图书查询系统的Java程序,通过自定义异常类(选择错误异常和找不到图书异常),并使用try-catch-finally语句进行异常处理,详细讲解了throw与throws的使用方法,以及如何正确比较Java字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   练习使用try catch语句和throw与 throws,因此按照慕课的课程写了一个模拟图书查询系统。定义一个了一个选择错误异常和找不到图书异常     
   具体代码如下
	选择异常
		
   public class ChooseException extends RuntimeException{    //继承运行时异常
    public ChooseException() {	
   }
   public ChooseException(String message) {
  	  super(message);		
   }
   }
   找不到图书异常

   public class Non_existent extends Exception{
   public Non_existent() {
	
  }
   public Non_existent(String message) {
	   super(message);
  }
  }
  之后在main方法中尝试直接throw抛出,编译不通过,因为main方法后没加throw,于是在测试类中定义test1()与test2()用来抛出两个异常
  public void test1() throws ChooseException{
	throw new ChooseException("选择错误");
	}
	public void test2() throws Non_existent{
		throw new Non_existent("找不到图书");
	}
	在main函数中创建测试类对象,
	SimulationLibrary sl = new SimulationLibrary();
	在输入时使用java自带的异常对象InputMismatchException来判断是否出现类型不对的,同时创建了多个布尔变量用来控制报错时的循环,并将其放在finally语句中,发现错误,无论是否报错,fianlly都执行,遂删除finally,放在catch语句中。
	之后就好办了,只用复制到第二种情况当中,比较字符串时出现异常,
	if(choose3 == Book[compare2][1])

	就是比较不成功,后来发现是用的变量的引用去对比的,自然是不会成功,于是调用了java的equals方法,成功了。
	项目结束
	此中经验,熟悉了try catch finnaly语句的用法,和throw与throws的用法,知道了java字符串的比较方法,在demo中还出现了一个死循环的现象,在输入时出的错,重新声明了另一个Scanner对象,解决了,具体原因以后可能会遇见。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值