JAVA异常

1.为什么有JAVA异常机制

为了使程序中异常处理代码和正常业务代码分离,为了提高程序的健壮性、可维护性和用户体验。异常类型可以回答“什么”被抛出,异常堆栈跟踪可以回答“在哪”抛出,异常信息可以回答“为什么”会抛出。

2.异常的定义

异常是指程序执行过程中出现的不正常情况,它打断了程序的正常执行流程。在Java中,异常被当作对象来处理,这些对象都是Throwable类的实例或其子类的实例。

3.异常的分类

Java中的异常体系是基于Throwable类构建的,Throwable是所有异常和错误的超类,Throwable有两个主要的子类:Error和Exception

3.1Error
Error类及其子类表示程序运行时JVM(Java虚拟机)遇到的严重问题,这些问题通常是不可恢复的,如内存溢出(OutOfMemoryError)、栈溢出(StackOverflowError)等。

3.2Exception
Exception可以分为两大类
(1)受检查异常(Checked Exceptions)
在编译时期就能够被捕捉到,编译器会强制要求开发者对这类异常进行处理。如IOException、ClassNotFoundException等。
(2)运行时异常(Runtime Exceptions)
在运行时期才能够被捕捉到,编译器不会强制要求开发者对这类异常进行处理。如NullPointerException(空指针)、ArrayIndexOutOfBoundsException(数组越界)、ClassCastException(类型转换)、ArithmeticException(算术异常)等。

4.使用异常机制

4.1抛出异常

在编写代码时,可能会遇到无法处理的错误情况(无效的用户输入、资源不可用、权限问题、状态不一致、复杂的错误条件等),此时可以通过throw关键字抛出异常,这可以是Java内置的异常类型,也可以是自定义的异常类。

public void doSomething() throws MyCustomException {  
    if (/* 某种错误条件 */) {  
        throw new MyCustomException("出错了!");  
    }  
}
4.2捕获异常

使用try-catch语句块来捕获并处理可能抛出的异常。你可以捕获特定的异常类型,也可以捕获所有异常(使用catch (Exception e))。

try {  
    // 尝试执行的代码  
    doSomething();  
} catch (MyCustomException e) {  
    // 处理MyCustomException  
    System.err.println("捕获到自定义异常: " + e.getMessage());  
} catch (Exception e) {  
    // 处理其他可能的异常  
    e.printStackTrace();  
}
4.3自定义异常

当Java内置的异常类型不满足开发需求时,可以通过继承Exception或RuntimeException来创建自定义异常类。

public class MyCustomException extends Exception {  
    public MyCustomException(String message) {  
        super(message);  
    }  
}

参考:https://blog.csdn.net/qq_43061290/article/details/124078378

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值