メモリに画像をロードしようとしていますが、他の画像がロードされているのでメモリの問題が発生する可能性があります。これらの画像には、可視かどうかを指示する「可視」フィールドがあります。可視性にかかわらず、私は速い読み込みのためにそれらを記憶に残します(それらが再び見えるようになったとき)。この「try-error-clean -retry」のケースを処理する最良の方法は何ですか?
しかし、私はそれらの多くをメモリに持っているので、私は新しいイメージを読み込もうとしています。もし私がメモリの問題に遭遇したら、見えないイメージを解放して、やり直してください。今、これまでのところ、私はこのかなり醜い使用しています(何らかの理由で、間違ったが、私は確信しています)コードの一部:
try {
image = GraphicsUtilities.loadImage(filePath);
} catch (OutOfMemoryError e) {
removeHiddenImageReferences();
try {
image = GraphicsUtilities.loadImage(filePath);
} catch (OutOfMemoryError ee) {
ee.printStackTrace();
JOptionPane.showMessageDialog(parent,
"There is not enought memory to load this image",
"Not enough memory", JOptionPane.WARNING_MESSAGE);
}
}
私の質問は、どのように私はこのような場合を処理する必要がありますか?私は例外をキャッチし、catch節の中で例外をキャッチするのが悪いと感じています。
答えに感謝します。私は徐々にメモリを解放していた(一度に1つの隠し画像をリリースするかもしれませんが)私の例では一度だけこれが上に少しあると思うので解放します。 –