リクエストハンドラのパラメータを取得するために、解析する必要があるリクエストを受け取るサーバがあります。また、構文解析ハンドラとリクエストハンドラの両方が何らかの方法で失敗する可能性があります(パーサーの場合はパラメータがなくなり、reqハンドラの場合はデータベースのエラー)。したがって、以下のコードの「ステータス」です。要求ハンドラはもちろん、私がクライアントに返す必要のある何らかの応答を返します。関数から複数の値と状態/エラーを返す
1)
parser.parse(request,¶m1, ¶m2, &status)
handler.handle(param1, param2, &response, &status)
:私はハンドラから分離パーサを維持したいので
だから私は、トラブル私は私の「メイン」に使用する必要があり、次のオプションの決定を抱えています2)
status = parser.parse(request, ¶m1, ¶m2)
status = handler.handle(param1, param2, &response)
3)
Params params = parser.parse(request, &status)
handler.handle(params, &response, &status)
4)
status = parser.parse(request, ¶ms)
status = handler.handle(params, &response)
5)
parser.parse(request, ¶ms, &status)
response = handler.handle(params, &status)
6)など、他のいくつかの組み合わせ
(PARAMS異なるパラメータのため、各タイプのコンテナのいくつかの種類であろう私は別の "Params"タイプを持っています。また、「&」はポインタや参照を意味する可能性がありますが、私はC++を使用していますが、質問には関係ありません)
どちらが一番簡単で、
は***同様の質問がたくさんありますが、どれも「状態」の部分が含まれていないので、私は私の心はまだ
問題は、エラーが必ずしも例外であるとは限りません。たとえば、ユーザーが間違ったパスワードでログインしたい場合は、それが「例外」であるとは言いません。ここでは、レスポンスはトークンであり、パスワードが間違っていればヌルトークンを返すようには思われません。 – Chrischpo
ユーザーが誤ったパスワードでログインしようとすると、それは間違いなく401/403 httpステータスに解決される例外です。パスワードチェック機能は 'null'を返しません。それは例外をスローします(何も返しません)。例外の仕組みを知っていますか?関数が例外をスローすると、 'null'を返しません。何も返さず、コード実行フローは 'catch'ブロックにジャンプします。 – djxak
はい、私は例外の動作を知っています。私はちょうど間違ったパスワードは例外ではないと考えています。例外的なことではないので、間違ったパスワードを入力することは非常に一般的です。だから、私の意図したことは、あなたのコードで何かが間違っていたのかどうかを知る方法はないが、例外を投げなかったということだった。 – Chrischpo