[解決済み] EmptyResultDataAccessExceptionをキャッチする必要がありますか?
2022-02-16 10:53:33
質問
主キーを渡しているため、1行を返すと予想されるSQL文があります。 そこで、私の選択肢は次のとおりです。
- ラップ queryForObject を try/catch で捕らえ、EmptyResultDataAccessException を捕らえ、null を返します。
- の呼び出しを変更する。 queryForList そして、リストをアンラップして、(うまくいけば)1番目の要素、またはnullを返します。
EmptyResultDataAccessExceptionは実行時例外を拡張しているので、キャッシングは悪い習慣であるとどこかで読みました。
でも、何も問題はないと思うのですが。
ご意見を伺いたいと思います。
解決方法は?
私がこの問題に遭遇したほとんどの場合(mvc/ws)、私は例外をスローさせますが、例外リゾルバで例外を処理します。 nullを返すことの問題は、アプリケーションがそれに依存しており、さらにその先で、それがあると予想される時点ではなく、後でnullチェックをしなければならないことです。 これは、すべての開発者が必要なときにnullチェックを行うとは限らず、後でnpeに遭遇する可能性があるため、問題を引き起こす可能性があります。 どのようなアプリケーションを書くかによりますが、例外リゾルバを使って例外をキャッチして処理する方法がいくつかあります。 例外リゾルバを使用することで、それぞれの例外を異なる方法で処理し、ユーザーにフィードバックを提供することができます。
ここでは、spring mvcを使った方法の一つを紹介します。 この方法では、主キーを持つオブジェクトが存在しない場合、ユーザーに対して一般的なメッセージを出すことができます。 http://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/
関連
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。
-
[解決済み] テスト
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] ThreadLocal変数はいつ、どのように使用すればよいですか?
-
[解決済み] 複数のJava例外を同じcatch節でキャッチすることはできますか?
-
[解決済み] Java の assert キーワードは何をするのか、そしていつ使うべきなのか?
-
[解決済み] JavaでequalsとhashCodeをオーバーライドする際に考慮すべき事項は?
-
[解決済み] 可能な限り常にパラレルストリームを使用した方がいいのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み】koch snowflake java recursion
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件