Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Locked History Actions

guice/Manual/BestPractices/BeCarefulAboutIoInProviders

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

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

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

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

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