나는 블록 구현 자바 implementers에 의해 많이 찾을 수 있습니다.어떻게 자바 구현 마지막 블록
자바가 마침내 블록을 평가하는 방법을 알고 싶습니다.
블록이 Java 언어로 정의 된 방법을 아는 사람이 있습니까?
나는 블록 구현 자바 implementers에 의해 많이 찾을 수 있습니다.어떻게 자바 구현 마지막 블록
자바가 마침내 블록을 평가하는 방법을 알고 싶습니다.
블록이 Java 언어로 정의 된 방법을 아는 사람이 있습니까?
구현은 JVM에 따라 다르기는하지만 JVM Specifications #3.13을 따릅니다.
finally
은 바이트 코드에서 적절한 리디렉션을 사용하여 예외 테이블에서 "모두 포착"처럼 동작합니다.
그래, 런타임 예외가 발생하더라도 finally 블록을 실행해야합니다. –
그것이 컴파일러가 소스를 바이트 코드로 변환했기 때문에 알 수 있습니다. JLS가 그렇게해야합니다. "왜 Java는 순서대로 명령문을 실행합니까?"와 같은 질문을 던지고 있습니다. 또는 "왜 루프 반복을합니까?" 언어가 정의되는 방식입니다. 컴파일러를 작성하지 않는 한 이런 일이 발생하는 것에 대해 걱정할 필요가 없습니다. 'finally' 블록은 해당'try' 블록 내부에서 무슨 일이 일어나더라도 실행된다는 것을 알아야합니다 (전원 손실이나 기계의 물리적 파괴의 경우 제외). –
질문이 명확하지 않습니다. [Java Language Specification] (http://docs.oracle.com/javase/specs/jls/se7/html/index.html)을 보셨습니까? 'finally'는 라이브러리 클래스/메소드가 아니며, 언어의 일부이며 그 동작은 JLS에 지정되어 있습니다. –
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-3.html#jvms-3.13을 읽으셨습니까? –
@ JimGarrison 마지막으로 명확하게 이해하지 못하는 점이 무엇인지, 실제로 질문은 명확하지 않지만 내 지식은 분명하지 않습니다.이 질문은 여기에 게시되어 있습니다. 질문을 편집하여 내 downbotes를 제거하십시오. –