私のプロジェクトでは、以下のように LoadableDetachableModel を使用しています。
public ReportPage(final Objectm, final PageReference pr) throws CustomException{
try{
final LoadableDetachableModel<List<MaintReport>> ldm =
new LoadableDetachableModel<List<MaintReport>>() {
@Override
protected List<MaintReport>load() {
**// Some Database operations //**
return x;
}
};
/*
Several LoadableDetachableModels, PageableListViews, Panels, Fragments etc.
*/
} catch ( Exception ex){
// create Custom Exception
} finally {
// Clean up of stuff
}
問題は、オーバーライド関数load()
が何らかのデータベース操作を伴うことです。このメソッドから例外がスローされた場合、またはこのメソッドから例外が発生した場合、どこでキャッチできますか? . 釣れないらしい。ログ メッセージを書き込んでみると、load()
コンストラクター全体が実行された後にメソッドが呼び出されていることがわかります。データベース操作をメソッド
の外に確実に移動できます。load()
しかし、そうする方法はありますか?
どなたか経験された方がいらっしゃいましたら、情報共有いただけると助かります。