在java中允许用户自定义异常_自定义异常

JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况,例如在设计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关键字用于在方法中声明抛出异常的实例对象,其语法格式如下:throw Exception 异常对象

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

public static void main(String[] args) {

// 下面的代码定义了一个try…catch 语句用于捕获异常

try {

// 调用divide()方法,传入一个负数作为被除数

int result = divide(4, -2);

System.out.println(result);

} catch (DivideByMinusException e) { // 对捕获到的异常进行处理

System.out.println(e.getMessage()); // 打印捕获的异常信息

}

}

// 下面的方法实现了两个整数相除,并使用throws 关键字声明抛出自定义异常

public static int divide(int x, int y) throws DivideByMinusException {

if (y 

// 使用throw 关键字声明异常对象

throw new DivideByMinusException("被除数是负数");

}

int result = x / y; // 定义一个变量result 记录两个数相除的结果

return result; // 将结果返回

}

}

运行结果:被除数是负数

例的main()方法中,定义了一个try…catch语句用于捕获divide()方法抛出的异常。在调用divide()方法时由于传入的被除数不能为负数,程序会抛出一个自定义异常DivideByMinusException,该异常被捕获后最终被catch代码块处理,并打印出异常信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值