1

おはようございます、

ドメイン モデルで定義された識別子 (VO) を期待するObjectNotFoundExceptionなどの例外を定義するドメインがあるとします。

質問

たとえば、リクエスト ハンドラからドメイン例外を直接スローできますか。

    class ObjectRequestHandler implements RequestHandler
    {
        ...

        public function __invoke(Request $request, Response $response)
        {
            // Will self-validate and throw an exception if not a valid UUID
            $objectId = ObjectId::fromString(strval($request->param('object_id'])));

            $object = $this->repository->find((string)$objectId);

            if (NULL === $object) {
                // Exception defined at the domain level...
                throw new ObjectNotFoundException($objectId);
            }

            ...
        }
}

これを行うと、リクエスト ハンドラーで識別子 VO が使用されることにもなります...スローされた例外は、デフォルトの例外ハンドラーによってキャッチされ、JSON応答を準備して送信することにも注意する必要があります。

最後に、ここでのリクエスト ハンドラは実装の詳細であり、質問の一部ではないことに注意してください。それについてコメントしないでください。

ありがとうございました。

4

1 に答える 1