• Java中的异常


    Java中的异常

    Java中的异常分为两大类:受检查异常(Checked Exceptions)和非受检查异常(Unchecked Exceptions)。以下是它们的详细说明、含义、作用以及示例代码

    1. 受检查异常(Checked Exceptions)

      • 含义:受检查异常是在编译时强制检查的异常,它们是Exception类的子类(不包括RuntimeException及其子类)。程序必须显式处理或声明抛出这些异常,否则编译会失败。

      • 作用:受检查异常通常用于表示程序无法处理的外部情况,例如文件不存在、网络连接失败等。强制程序员在代码中明确处理这些异常,以确保程序的稳定性和可靠性。

      • 示例

        import java.io.*;
        
        public class CheckedExceptionExample {
            public static void main(String[] args) {
                try {
                    FileReader fileReader = new FileReader("nonExistentFile.txt");
                } catch (FileNotFoundException e) {
                    System.err.println("File not found: " + e.getMessage());
                }
            }
        }
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
    2. 非受检查异常(Unchecked Exceptions)

      • 含义:非受检查异常是RuntimeException类及其子类的异常,它们不需要在代码中显式声明或捕获。这些异常通常表示程序中的逻辑错误或运行时问题,例如空指针异常、数组越界等。

      • 作用:非受检查异常用于表示编程错误和运行时问题,应该通过改进程序逻辑来避免它们。

      • 示例

        public class UncheckedExceptionExample {
            public static void main(String[] args) {
                String str = null;
                System.out.println(str.length()); // NullPointerException
            }
        }
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • 6
    3. Error

      • 含义ErrorThrowable的子类,用于表示严重的系统错误,通常由Java虚拟机(JVM)引发,无法通过程序捕获或处理。常见的Error包括OutOfMemoryErrorStackOverflowError
      • 作用Error通常表示系统无法恢复的错误,因此程序员不需要捕获或处理它们,而是应该修复程序代码以避免它们的发生。
      • 示例:通常不需要示例,因为程序不应该尝试捕获或处理Error

    在实际编程中,要根据不同的异常类型采取适当的措施。受检查异常需要使用try-catch块捕获或在方法签名中声明抛出,以确保错误处理。非受检查异常通常表示程序内部错误,应通过代码修复来避免。错误(Error)则通常表示严重的系统问题,无法通过代码解决,而是需要操作系统或JVM的干预。

    总之,异常处理是Java编程中非常重要的一部分,它有助于增加程序的健壮性和可维护性。根据不同类型的异常,合理地处理或避免异常有助于编写高质量的Java程序。

  • 相关阅读:
    【广度优先搜索】leetcode 107. 二叉树的层序遍历 II
    【2023,学点儿新Java-13】阶段练习之Java面试企业真题(阿里巴巴&拼多多 等) | 常用的Java命令行操作都有哪些 | 如何解决Java的内存泄漏和内存溢出问题?
    【每日一题】441. 排列硬币
    基于springboot的国际化解决方案
    Redis 分布式锁
    疫情之下,企业管理如何做好?疫情防控管理系统助力企业战疫
    DAO 的具体内涵与概念
    力扣labuladong一刷day4共2题
    前端无感登录(无感刷新token)
    swagger
  • 原文地址:https://blog.csdn.net/sanmansan/article/details/133691047