【Java异常】自定义异常

63 篇文章 4 订阅

Java中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在设计divide()方法时不允许被除数为负数。为了解决这样的问题,Java允许用户自定义异常,但自定义的异常类必须继承自Exception 或其子类。
我们先定义一个异常类继承自Exception,如下:

public class DivideByMinusException extends Exception{
	public DivideByMinusException() {
		super();//调用Exception的无参构造方法
	}
	public DivideByMinusException(String message) {
		super(message);//调用Exception的有参构造方法
	}

}

在实际开发中.如果没有特殊的要求,自定义的异常类只需继承Exception类,在构造方法中使用super()语句调用Exception 的构造方法即可。

既然自定义了异常,那么该如何使用呢?这时就需要用到throw 关键字,在程序指定位置通过throw关键字抛出自定义的异常对象,然后对抛出的异常进行异常处理。

接下来重新对例中的divide()方法进行改写,在divide()方法中判断被除数是否为负数,如果为负数,就是用throw关键字向调用者抛出自定义的DivideByMinusException异常对象

如下:

public class Dmeo03 {
	//下面两种方法实现了两个整数相除
	public static int divide(int x,int y) throws DivideByMinusException{
		if(y<0) {
			//使用throw关键词声明异常对象
			throw new DivideByMinusException("除数<0");
		}
		int result = x/y;//定义一个变量result记录两个数相除的结果 
		return result;//将结果返回
	}
	public static void main(String[] args) {
		try {
			int result = divide(4,-2);
			System.out.println(result);
		}catch(DivideByMinusException e) {
			System.out.println("捕获的异常信息为:"+e.getMessage());
		}
	}

}

运行结果:

divide()方法通过逻辑判断对除法运算的除数是否为0进行了判断,如果除数为0就使用throw关键字抛出自定义的DivideByMinusException异常对象,然后通过throws关键字抛出异常,并在最后通过try...catch语句捕获异常。从上图可以看出,程序执行后判断出除数为0,抛出了指定的异常信息。

感谢观看!!!
 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值