继承Exception或RuntimeException可定义符合Java规范的自定义异常,区分检查与非检查异常,明确处理方式,提升代码可读性、维护性,并支持分层异常处理策略。

在Java中,继承 Exception 或 RuntimeException 是为了定义符合Java异常体系规范的自定义异常类。这样做能让程序更清晰地处理错误情况,并利用Java的异常机制进行流程控制和问题排查。
区分异常类型,明确处理方式
Java将异常分为两类:检查异常(checked exception)和非检查异常(unchecked exception)。通过继承不同的基类,可以决定自定义异常属于哪一类:
• 继承 Exception:创建的是检查异常,编译器会强制调用者处理或声明抛出。• 继承 RuntimeException:创建的是非检查异常,调用者无需显式处理。
比如,用户输入格式错误可以用 RuntimeException 衍生类,而文件不存在则适合用 Exception 衍生类,因为后者通常需要被主动捕获处理。
增强代码可读性和维护性
通过命名和继承结构,能直观表达异常的含义。例如定义一个 InsufficientFundsException 继承自 Exception,其他开发者一看就知道这是业务中可能出现的、需要处理的资金不足问题。
立即学习“Java免费学习笔记(深入)”;
• 可以在 catch 块中精确捕获特定问题
这比使用通用异常(如 Exception)更容易定位问题,也便于编写有针对性的恢复逻辑。
支持合理的异常传播与处理策略
继承标准异常类后,可以在合适层级集中处理异常。比如框架层捕获自定义的 ServiceException,而底层抛出 DataAccessException,两者都继承自 Exception,形成有层次的错误处理链条。
• 运行时问题(如空指针)适合用 RuntimeException 子类,表示程序缺陷• 外部因素导致的问题(如网络失败)适合用 Exception 子类,提示必须处理
这样设计有助于构建健壮的应用程序,避免异常被忽略或误用。
基本上就这些。继承 Exception 或 RuntimeException 不是为了形式,而是为了让异常成为程序设计的一部分,帮助写出更安全、易懂、可维护的代码。










