在JAVA中常见的异常类型有什么

一、在Java中,异常分为三种类型

:Checked Exception(检查异常)、Unchecked Exception(非检查异常)和Error(错误)。

  1. 检查异常(Checked Exception): 检查异常是指在编译阶段就需要捕获或声明的异常。它们是Exception类或其子类的子类,但不是RuntimeException类或其子类的子类。检查异常通常表示程序可能处理的可预知的错误或异常情况。在方法声明中必须显式声明检查异常,或者使用try-catch块捕获和处理异常,否则编译时会报错。

  2. 非检查异常(Unchecked Exception): 非检查异常是指在编译阶段不需要捕获或声明的异常。它们是RuntimeException类或其子类的子类。非检查异常通常表示程序中出现的意外错误或异常情况,如空指针异常、数组越界异常等。编译器不会在编译时检查非检查异常,可以选择捕获和处理,但不强制要求。

  3. 错误(Error): 错误是指程序无法处理的严重问题,通常是虚拟机内部错误或资源耗尽等不可恢复的错误。与异常不同,错误通常不应该被捕获和处理,而是由Java虚拟机自行处理。

二、Java中常见的异常类型包括:

NullPointerException(空指针异常)、ArrayIndexOutOfBoundsException(数组下标越界异常)、ClassCastException(类转换异常)、NumberFormatException(数字格式异常)、FileNotFoundException(文件未找到异常)、IOException(输入输出异常)等。

除了内置的异常类型,Java还支持自定义异常类型,通过继承Exception或其子类来创建自定义的异常类。自定义异常类可以根据具体的业务需求定义额外的字段和方法。

三、自定义异常示例

要自定义异常,可以创建一个继承自Exception的类,并重写其构造方法。以下是一个示例代码:

class MyException(Exception):
    def __init__(self, message):
        # 调用父类的构造方法,并传入异常信息
        super().__init__(message)
        self.message = message

# 使用自定义异常
def divide(a, b):
    if b == 0:
        raise MyException("除数不能为零!")
    return a / b

try:
    result = divide(10, 0)
    print(result)
except MyException as e:
    print("发生自定义异常:", e.message)

在上面的示例中,我们创建了一个名为MyException的自定义异常类,它继承自内置的Exception类。在构造方法中,我们调用了父类的构造方法,并传入异常信息。然后,使用raise关键字抛出自定义异常对象。在try块中,我们调用了divide函数并传入了一个除数为0的参数,这样就会抛出自定义异常。在except块中,我们捕获到了这个自定义异常,并打印出异常信息。

输出结果为:发生自定义异常: 除数不能为零!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值