news 2026/7/16 11:23:09

Java异常体系精讲:一文吃透九大常见异常成因、场景与代码实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java异常体系精讲:一文吃透九大常见异常成因、场景与代码实战

目录

一、NullPointerException 空指针异常

二、ClassNotFoundException 类不存在异常

三、NumberFormatException 数字格式转换异常

四、IndexOutOfBoundsException 数组下标越界异常

五、ClassCastException 数据类型转换异常

六、FileNotFoundException 文件未找到异常

七、NoSuchMethodException 方法不存在异常

八、IOException IO 流异常

九、SocketException 网络套接字异常

十、九大异常面试极简总结(背诵版)

十一、文末小结


在 Java 开发和面试中,异常是日常开发出镜率最高的问题。线上 Bug、程序崩溃、接口报错,绝大部分都来自常见运行时异常与编译异常。

很多开发者只会报错排查,不知道异常成因、不会提前规避、分不清各类异常的适用场景。

本文整理面试与开发中9 大高频异常,逐类讲解定义、触发场景、错误代码、解决方案,从零彻底吃透 Java 常见异常体系。

一、NullPointerException 空指针异常

释义:最常见的运行时异常。当程序调用null 对象的方法或属性时,触发空指针异常。

触发场景:对象未初始化、接收 null 值、查询数据为空直接调用属性。

public class ExceptionDemo { public static void main(String[] args) { // 对象未初始化,默认null String str = null; // 空对象调用方法,触发空指针 str.length(); } }

规避方案:使用前判空(if != null、Objects.nonNull)。

二、ClassNotFoundException 类不存在异常

释义:编译通过、运行时找不到指定类,属于检查型异常

触发场景:Jar 包缺失、类路径错误、全类名写错、动态加载类不存在。

public class ExceptionDemo { public static void main(String[] args) throws ClassNotFoundException { // 错误类名,运行找不到类 Class.forName("com.test.NoSuchClass"); } }

规避方案:检查依赖包、核对类全限定名、确保类可被加载。

三、NumberFormatException 数字格式转换异常

释义:字符串格式不合法,无法转为数字时抛出。

触发场景:空字符串、特殊字符、中文、小数点过多的字符串转数字。

public class ExceptionDemo { public static void main(String[] args) { // 非纯数字字符串,无法转换 String numStr = "123abc"; Integer.parseInt(numStr); } }

规避方案:转换前正则校验格式、try-catch 捕获异常。

四、IndexOutOfBoundsException 数组下标越界异常

释义:访问数组/集合下标超出合法范围,下标小于0或大于等于数组长度。

触发场景:循环下标控制不当、硬编码下标、集合为空强行取值。

public class ExceptionDemo { public static void main(String[] args) { int[] arr = {10,20,30}; // 数组长度3,下标最大为2,访问3越界 System.out.println(arr[3]); } }

规避方案:遍历使用 length 动态判断,禁止硬编码下标。

五、ClassCastException 数据类型转换异常

释义:强制类型转换时,父子类无继承关系、类型不匹配导致转换失败。

触发场景:向上转型没问题,向下强制转型类型不匹配。

public class ExceptionDemo { public static void main(String[] args) { Object obj = "测试字符串"; // 字符串无法强转为Integer,类型转换异常 Integer num = (Integer) obj; } }

规避方案:转型前使用 instanceof 判断类型。

六、FileNotFoundException 文件未找到异常

释义:读取/写入文件时,文件路径错误、文件被删除、无访问权限。

触发场景:路径写错、资源文件丢失、相对路径错误。

import java.io.FileReader; public class ExceptionDemo { public static void main(String[] args) throws Exception { // 不存在的文件路径 FileReader reader = new FileReader("D:/noexist.txt"); } }

规避方案:先判断文件是否存在、统一使用项目资源路径。

七、NoSuchMethodException 方法不存在异常

释义:通过反射调用方法时,找不到对应名称、参数列表的方法。

触发场景:方法名写错、参数类型不匹配、方法被私有化、版本更新方法删除。

public class ExceptionDemo { public static void main(String[] args) throws NoSuchMethodException { // 获取不存在的方法 Demo.class.getMethod("noSuchMethod"); } } class Demo{ public void test(){} }

规避方案:核对方法名、参数列表、访问权限。

八、IOException IO 流异常

释义:文件读写、网络传输、流操作出现通用 IO 异常,是所有 IO 异常的父类。

触发场景:文件损坏、流关闭异常、网络中断、读写权限不足。

import java.io.FileInputStream; import java.io.IOException; public class ExceptionDemo { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("test.txt"); fis.read(); fis.close(); } }

规避方案:IO 操作放入 try-catch,finally 关闭流资源。

九、SocketException 网络套接字异常

释义:网络通信异常,客户端与服务端连接中断、端口占用、连接超时、数据流断开。

触发场景:网络断开、服务端宕机、端口被占用、客户端强制关闭连接。

规避方案:网络操作增加重试机制、心跳检测、异常捕获重连。

十、九大异常面试极简总结(背诵版)

NullPointerException:空对象调用方法属性;

ClassNotFoundException:运行找不到指定类;

NumberFormatException:字符串转数字格式非法;

IndexOutOfBoundsException:数组集合下标越界;

ClassCastException:数据强制类型转换不匹配;

FileNotFoundException:文件路径错误或文件不存在;

NoSuchMethodException:反射找不到对应方法;

IOException:文件、流读写通用 IO 异常;

SocketException:网络通信连接异常。

十一、文末小结

以上九大异常是 Java 开发与面试中出现频率最高的异常类型。

掌握每种异常的触发场景、报错原因、规避方式,可以快速定位线上 Bug、减少低级错误、写出健壮稳定的代码,是后端工程师必备的基础功底。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 11:22:21

45-代码审查工作流

45 代码审查工作流 概述 代码审查(Code Review)是保证代码质量的核心环节。然而,传统的代码审查依赖人工逐行检查,既耗时又容易遗漏问题。Codex提供了AI辅助的自动化代码审查能力,能够从安全性、性能、可维护性、代码风格等多个维度对代码进行系统性分析,帮助开发者在提…

作者头像 李华
网站建设 2026/7/16 11:20:40

Angry IP Scanner:3分钟掌握专业网络探测的5个核心价值

Angry IP Scanner:3分钟掌握专业网络探测的5个核心价值 【免费下载链接】ipscan Angry IP Scanner - fast and friendly network scanner 项目地址: https://gitcode.com/gh_mirrors/ip/ipscan 想象一下,当你需要快速了解办公室网络中有哪些设备在…

作者头像 李华
网站建设 2026/7/16 11:20:33

51单片机电子时钟设计与实现

1. 项目背景与核心需求作为一名电子爱好者,我一直想亲手制作一个可调时间的电子时钟。51单片机作为入门级MCU的代表,以其简单易用的特性和丰富的学习资源,成为我实现这个想法的最佳选择。这个项目不仅能让我掌握单片机的基本开发流程&#xf…

作者头像 李华
网站建设 2026/7/16 11:18:17

HsMod:基于BepInEx的炉石传说终极增强插件完整技术指南

HsMod:基于BepInEx的炉石传说终极增强插件完整技术指南 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod是基于BepInEx框架开发的炉石传说游戏增强插件,通过运行…

作者头像 李华
网站建设 2026/7/16 11:17:42

从零到一:构建合规且用户友好的App隐私政策实战指南

1. 为什么你的App需要一份靠谱的隐私政策?去年有个做健身App的朋友跟我吐槽,他的应用刚上架就被应用商店下架了,原因就是隐私政策不合格。这可不是个例,现在全球的应用商店审核越来越严格,没有合规的隐私政策就像开车没…

作者头像 李华
网站建设 2026/7/16 11:16:40

VeighNa量化交易框架:从入门到实战的完整Python解决方案

VeighNa量化交易框架:从入门到实战的完整Python解决方案 【免费下载链接】vnpy 基于Python的开源量化交易平台开发框架 项目地址: https://gitcode.com/vnpy/vnpy 在当今数字化交易时代,Python量化交易已成为专业投资者的必备技能。VeighNa作为国…

作者头像 李华