Locked History Actions

Diff for "guice/Manual/BestPractices/BeCarefulAboutIoInProviders"

Differences between revisions 2 and 3
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
 * プロバイダは再試行ストラテジを持たない。値が容易されていないときに、get()を複数回呼び出すことは複数のエラーを起こすことになる。  * プロバイダは再試行ストラテジを持たない。値が用意されていないときに、get()を複数回呼び出すことは複数のエラーを起こすことになる。
Line 10: Line 10:
It allows failures to be scoped, so a failed lookup only happens once per request or session. これによってエラーをスコープ管理できる、つまり、一つのリクエスト・一つのセッションについてルックアップは一度だけ失敗する。

プロバイダ内でのI/Oに注意

プロバイダインターフェースは呼び出し側にとって便利なものであるが、しかしセマンティックスを欠いている。

  • プロバイダはチェック例外を提供しない。もし特定のタイプのエラーから復旧する必要のあるコードを記述している場合、TransactionRolledbackExceptionをキャッチすることはできない. ProvisionExceptionは一般的なプロバイダ例外から復旧するためのものであり、その原因を数えることもできるが、しかし何が原因なのかはわからない(訳注:?)。

  • プロバイダはタイムアウトをサポートしない。
  • プロバイダは再試行ストラテジを持たない。値が用意されていないときに、get()を複数回呼び出すことは複数のエラーを起こすことになる。

ThrowingProviders はGuice-Extensionであり、Exceptionを投げるプロバイダである。 これによってエラーをスコープ管理できる、つまり、一つのリクエスト・一つのセッションについてルックアップは一度だけ失敗する。