java异常处理与处理框架-笔记
1、Java异常分为checked异常和unchecked异常
checked异常(需要在代码中try……catch显示捕获)
所有继承java.lang.Exception的异常。是可以在执行过程中恢复的。此类异常不是程序中可以预测的,比如无效的用户输入、文件不存在等。这些都是外在的原因,都不是程序内部可以控制的。
unchecked异常(也叫错误,不需要显示捕获)
所有继承java.lang.RuntimeException的异常。是无法处理的错误。
2、异常到底应该在什么位置被记录?
在异常最初产生的位置。
如果是可以处理的异常,则处理之后不做记录。如果是无法处理的异常,则把可以仅仅把它封装成另一种异常并往上抛,不必再把已记录过的异常再记录一次。
3、记录异常不属于异常类的行为,记录异常类应该由专门的日志系统去做。
4、为系统提供一个异常处理框架,由框架来决定是否记录异常和怎么记录异常,而不是由普通程序员去做。
5、对于一个应用程序来说,发生所有异常在用户看来都是应用系统内部的异常。因此应该设计一套应用系统的异常框架,以处理系统运行过程中的所有异常。
可以设计一个应用系统的通用类,如AppException,并且这个异常以及这个异常的子类都是运行应用系统时发生的,因此AppException家族应该继承于RuntimeException,这样系统中所有的其他异常都转移为AppException,当异常发生时,前端统一接收到AppException并做统一的处理。
6、通用异常处理框架中需要提供配置信息的支持以及统一的异常处理类和异常日志记录类管理,并允许用户以插件形式扩展自定义的异常处理或日志记录方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构