2013-05-06 18 views
5

プライマリキーを渡しているので、私は期待しているSQL文を1行返すでしょう。だから私の選択肢はEmptyResultDataAccessExceptionをキャッチし、ヌル EmptyResultDataAccessExceptionをキャッチする必要がありますか?

  • 変更queryForListへの呼び出しを返す、のtry/catchで

    1. ラップにqueryForObjectで、リストをアンラップし、(たぶん)第一を返します要素、またはnull

    実行時例外を拡張するので、EmptyResultDataAccessExceptionの陰影がどこかに読み込まれていますが、これは悪い習慣です。

    しかし、私はそれに何か間違って見ることはできません。

    私はそれがその例外をキャッチするために完全に受け入れられると思う意見に

  • +0

    プライマリキーを渡す場合、どのようにして空に戻りますか? –

    +1

    さて、そうではありません。 "すべき"がここではキーワードです。 – EdgeCase

    答えて

    1

    私はこの(mvc/ws)を実行している時間のほとんどは例外をスローさせますが、例外リゾルバで例外を処理します。 nullを返す問題は、アプリケーションがそれに依存していることと、さらに進むことです.Nullチェックは、そこにあると予想されるときより後で行う必要があります。これは問題を引き起こす可能性があります。なぜなら、必要なときにすべての開発者がヌルチェックを行っているとは限らず、後でnpeを実行できるからです。あなたが書いているアプリケーションのタイプに応じて、例外リゾルバを使って例外を捕まえて処理するいくつかの方法があります。例外リゾルバを使用することにより、例外ごとに異なる処理を行い、ユーザにフィードバックを提供することができます。

    ここでは、spring mvcを使用して行う方法の1つです。このようにして、プライマリキーを持つオブジェクトが存在しない場合、一般的なメッセージをユーザに送ることができます。 http://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/

    1

    を聞くことに興味があると思います。これは私が思い出すことができる唯一の春の例外ですが、潜在的に存在しないレコードを見つけるための有効なユースケースがあります。

    関連する問題