메모리에 이미지를로드하려고하는데 다른 이미지가로드되어있어 메모리 문제가있을 수 있습니다. 이러한 이미지에는 가시적인지 아닌지를 나타내는 "가시적 인"필드가 있습니다. 가시성에 관계없이 빠른 로딩 (다시 표시 될 때)을 위해 메모리에 유지합니다."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 절 안에서 예외를 잡는 것이 나쁘다고 생각한다.
답해 주셔서 감사합니다. 나는 점차적으로 메모리를 공개했다면 (한 번에 하나의 숨겨진 이미지를 릴리스 할 수도 있지만) 필자의 예에서는 일단 이것이 공개되면 처음에는 조금 이상하다고 생각하기 때문에 이것을 사용합니다. –