Java的异常处理机制是责任链设计模式的一个例子吗?

Gee*_*eek 5 java design-patterns exception-handling exception

我一直在阅读关于责任链设计模式,它基本上允许请求的发送者和请求的接收者之间的解耦.请求可以在链中传递,直到有人准备好使用请求.现在在Java中,当我们指定方法能够抛出一个时,Exception 我们让方法的调用者处理异常.如果它不感兴趣,它可以进一步传播链上的异常.那么这个过程可以被引用为责任链设计模式的应用吗?

Ezh*_*l V 5

你是对的.Java中的异常处理基于责任链模式在此模式中:

  1. 发件人不知道链中的哪个对象将服务于其请求
  2. 链中的每个节点都可以决定提供请求 - >捕获异常并
    使用特定于应用程序的异常包装它
  3. 每个节点都可以转发请求 - >将异常抛给直接调用者
  4. 没有节点可以为请求提供服务 - >将作业留给调用者

因此,异常处理是一种责任链模式

  • 这是错误的答案,因为异常层次结构基于继承,而责任链是请求的过滤处理器。 (3认同)