Springbootグローバル異常捕獲とtry catch区別解析


今日コードの時に突然この問題を思い出して、少し困惑しています。ネットでも多くの招待状をめくっています。その中に一つの招待状があります。私に一つの考えをくれました。実は基礎概念を説明しました。
コンセプト1:try catch文はtryで異常をキャッチするとcatchの中に入り、catch内のコードを実行します。
コンセプト2:springbootにおけるグローバル異常処理は、異常をキャッチした後、異常コードの後のステートメントは動作しなくなります。
この二つの機能はコードに異常が発生した時に処理されて、調整者(またはユーザー)に友好的なヒントを返します。この2つは何の違いがありますか?ポイントが来ました。
ビジネスシーンの一つ:あるフィールドは唯一を保証しなければなりません。例えば、同じnameのデータが存在することは許されません。これはみんなが開発する過程でよく見られます。新規インターフェースを呼び出した時に、まずこのデータが倉庫にあるかどうか確認してください。もし存在すれば、「このデータはすでに存在します」と戻ります。そして、後の挿入動作はもう実行しません。この時点で私はtry catchとグローバル異常処理の効果は同じだと思います。
ビジネスシーン2:あるフィールドはユーザーに「このデータはすでに存在している」という提示が必要ですが、しかし…私も同じデータを追加することを許可します。ただあなたに提示するだけです。このデータの挿入を阻止しません。この時、有木さんが突然感じたら違っています。グローバル異常処理なら、「このデータはすでに存在します」とヒントを与えてから、後ろのコードを実行しません。try catchさんは異常情報「このデータはすでに存在します」を投げ飛ばした時に、catchコードブロックに入って挿入操作を行うことができます。
グローバル異常処理があったら、try catchは役に立たないと考えないでください。私がこのように計算しますかを知らないのは無理な説明です。
図一(グローバル異常のみを使用した場合、else文内のinsert操作は実行できません)

図二(異常を投げた後、catchに入ってもinsert動作を行います。)

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。