자바에서 예외를 배우는 중이므로 예제를 살펴 보았습니다.하지만 잘못되었거나 여전히 이해할 수 없습니다.이 예외 예가 잘못 됐습니까?
여기에 코드입니다 :
command1;
try {
command2;
command3;
try {
command4;
command5;
} catch (MyException e) { command6; }
command7;
} catch (IOException e) {
command8;
} catch (OwnException e) {
command9;
} finally {
command10;
}
command11;
그리고 다른 시나리오에서 실행 명령을하는 아래로 쓰여 있지만, MyException가 Command4 등 발생했을 경우 거의 하나 개의 시나리오에서, command7 실행되지 않습니다.
잘못 됐습니까? 나는 여기서 배울 기회가 있기 때문에 배웠다.하지만 교사의 메모가 틀릴 수도있다. 명령 6이 명령 7에 뒤따른 경우에만 참이되지 않을까? 그래서 command6과 command7은 하나의 catch 블록에 있어야만 command7이 실행되지 않는 이유를 설명 할 수 있습니다 (이 경우에는 command5 중에 MyException이 발생하더라도 모든 시나리오가 노트에서 실행되지는 않습니다) . command2;
, command3;
또는 잠재적으로는 IOException
또는 OwnException
의 원인이 command6;
하지 않는
네가 옳고 선생님이 틀렸어. 그러나 이것을 해결하는 가장 좋은 방법은 직접 실행하는 것입니다. 그것은 SO 질문을 작성하는 것보다 빠르다. :) – sstan
@sstan이 ide (또는 ideone.com)을 사용하고 그걸 가지고 노는 것처럼, 당신은 자신의 눈으로 볼 수있다;) –
"그러나 command7은 command4 중에 MyException이 발생하면 거의 한 번만 실행됩니다. " 그것은 전적으로 사실이 아닙니다. command4 및 command5 중에 예외가 발생하지 않으면 command 7도 실행됩니다. command6이 목적을 가지면 catch 블록 내에서 command7이 아닙니다. – Jimmy