2013-01-08 2 views
3

가능한 중복 :이 함수의 반환을 무엇
In Java, does return trump finally?마침내 항상 호출 되나요?

? 당신이 스레드가 즉시 종료 같이 System.exit(0); 다음 finally 블록이 호출되지 호출하는 경우

public int wasExceptionThrown() { 
    try { 
    if(1==1) 
     throw new RuntimeException(); 
    return 1; 
    } catch(Exception e) { 
    return 2; 
    } finally { 
    return 3; 
    } 
    return 0; 
} 
+11

시도해 보셨습니까? 잘하면 당신은 자바와 컴퓨터가 있습니다. –

+2

으로 대답하면됩니다. – Dylan

+0

먼저 'return 1'에 도달 할 수 없기 때문에이 함수는 컴파일되지 않습니다. –

답변

7

. 다른 모든 경우에 블록이 종료 될 때 finally이 호출됩니다 (가정 할 때)

+1

을 편집했거나 마지막으로 JVM을 실행하기 전에 오류가 발생했습니다. –

+0

@NirmitSrivastava 예, 오류가 발생하지 않고 오류가 발생합니다. –

3

마지막으로 before return이라고합니다.

마지막으로 System.exit()을 호출하거나 JVM이 먼저 충돌하는 경우에만 호출됩니다.

관련 문제