def chain(name = nil, other = Chain::EMPTY, exception_chain = Chain::EMPTY, &block)
      @chain_dsl.build(name, other, exception_chain, &block)
    end
def chain(name = nil, other = Chain::EMPTY, exception_chain = Chain::EMPTY, &block)
      @chain_dsl.build(name, other, exception_chain, &block)
    end
Build a new {Chain} instance

 @param [#to_sym] name
   the new chain's name

 @param [Chain] other
   the optional chain to build on top of

 @param [Chain] exception_chain
   the chain to invoke in case of an uncaught exceptions in handlers

 @param [Proc] block
   a block to be instance_eval'ed in {Chain::DSL}

 @return [Chain]

 @api private