다음 코드가 있습니다.단일 예외에 대해 catch 블록이 두 번 실행되는 이유는 무엇입니까?
try{
Twitter twitter = new Twitter(user,password);
twitter.setStatus(txtStatus.getText());
JOptionPane.showMessageDialog(null, "Success");
txtStatus.setText("");
txtStatus.requestFocus();
}catch(Exception e){
JOptionPane.showMessageDialog(null, "Some Error.\n" +
" If you see this after Success Message..Ignore");
}
"성공 메시지"대화 상자가 나타난 후에도 "일부 오류"대화 상자가 나타납니다. 이유는 무엇일까요? 런타임 오류가없는 경우 흐름 제어가 catch 블록을 벗어나지 않아야합니다.
예외가 발생하더라도 "일부 오류"대화 상자가 두 번 나타납니다. 왜 이런 현상이 발생합니까?
실제 printStack은 어떻습니까? – ukanth
프로 팁 : ** 절대로 ** 예외를 잡으십시오. **. 그렇게하면 catch 절이 초콜릿 상자처럼 보일 것입니다. – gustafc
* 절대로 말하지 말아라. * - 예외 잡기 (catch Exception) 또는 '잡을 수있는 잡기 (catch Throwable)'를하기를 원할지도 모르는 곳이 몇 군데있다. 프레임 워크 코드에서 광범위한 catch 문을 사용하여 구성 요소를 호출하는 코드를 래핑하면 한 구성 요소로 인해 전체 프레임 워크가 실패하지 않습니다. 또한이 경우 코드가 '오류 처리'보다 '오류보고'가 더 많은 경우입니다. 오류 코드가 실제로 무엇인지 정확히 알 수있는 방법이 없으므로이 특정 코드는 좋지 않습니다. 일반적으로 '오류보고'는 가능하면 앱의 전역에서 한 곳에서 이루어지며, 필요에 따라 오류가 감싸거나 재연되는 경우가 있습니다. – Nate