当前位置: 代码网 > it编程>编程语言>Java > Java开发日记之运行时有出现过什么异常详解

Java开发日记之运行时有出现过什么异常详解

2026年09月03日 Java 我要评论
前言在我的项目开发和生产运维中,遇到的异常可以归纳为以下几类:第一类:常见的运行时异常这类异常通常是由于编码疏忽或逻辑不严谨造成的。空指针异常场景: 最经典的比如:调用 null 对象的方user.g

前言

在我的项目开发和生产运维中,遇到的异常可以归纳为以下几类:

第一类:常见的运行时异常

这类异常通常是由于编码疏忽或逻辑不严谨造成的。

  • 空指针异常
    • 场景: 最经典的比如:调用 null 对象的方user.getname(), 从map中get一个不存在的键返回null后继续操作,或者自动拆箱integerint时对象为null
    • 原因与解决: 根本原因是缺少null值判断。我的解决方法是:1)在调用前进行判空;2)使用optional类来优雅地处理可能为null的情况;3) 在获取 map 值时使用getordefault方法。
  • 类型转换异常
    • 场景: 在使用集合框架时,比如从一个声明为list的集合里取出一个元素并强转为string,但实际上里面存放的是integer
    • 原因与解决: 原因是类型不安全。解决方法是:1)在使用泛型集合时,始终指定具体的类型参数,利用编译器的类型检查;2)在强制转换前使用instanceof进行类型判断。
  • 数组越界/字符串越界异常
    • 场景: 循环或访问数组、列表、字符串时,索引超出了有效范围。
    • 原因与解决: 循环条件或索引计算错误。解决方法是在访问前检查索引是否 >=0< array.length

第二类:业务相关的特定异常

这类异常与你的项目业务逻辑紧密相关,能体现你的业务理解能力。

  • 场景: 比如在一个电商项目中,我遇到过 inventoryshortageexception
  • 原因: 用户下单时,系统检测到商品库存不足。
  • 解决: 这不仅仅是一个技术异常,更是一个业务流程问题。我们不仅在代码中抛出这个异常,还在前端给用户明确的提示“商品库存不足”,并引导用户重新选择。同时,这个异常会触发告警,通知运营人员及时补货。

第三类:框架和集成相关的异常

这类异常能体现你对所用技术栈的熟悉程度。

  • spring框架中的异常:
    • beancreationexception: 比如bean注入失败,可能是因为循环依赖。我们通过代码重构,使用@lazy注解或 setter 注入来解决。
    • transactionexception: 事务回滚失败。我们检查了事务的传播属性和数据库连接,确保在异常发生时事务能正确回滚。
  • 数据库相关异常:
    • dataintegrityviolationexception: 插入数据违反了数据库约束(如唯一键冲突、外键约束)。我们通过在前端增加数据校验和在代码中先查询再插入的逻辑来避免。
    • deadlockloserdataaccessexception: 数据库死锁。我们通过分析数据库死锁日志,调整业务逻辑中sql的执行顺序,或者缩短事务执行时间来减少死锁概率。
  • 网络和微服务异常:
    • connectexception / sockettimeoutexception: 在调用外部http接口或微服务时,连接超时或读取超时。
    • 原因与解决: 网络不稳定或下游服务响应慢。我们的解决方案是:1)合理设置连接和读取超时时间;2)引入重试机制(如spring retry);3)使用熔断器模式(如hystrix或resilience4j)防止雪崩效应。

需要避免的坑

  • 不要说“我没遇到过什么异常”: 这会显得你经验不足。
  • 不要只停留在表面: 不要只说“我遇到了npe,然后加了判空”。要深入一点,讲讲场景和思考。
  • 不要抱怨: 不要把问题归咎于同事或过时的代码,要展示你主动解决问题的能力。

总结

面试官问这个问题,不仅仅是想听你列举异常名称,他更想考察你的实战经验、问题分析能力和解决复杂问题的思路。用一个结构化的回答,并结合一个深入的故事,会让你在这个问题上获得高分。

到此这篇关于java开发日记之运行时有出现过什么异常的文章就介绍到这了,更多相关java运行异常内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com