2017-09-29 2 views
-2

, §14.21 도달 할 수없는 문구 :Java 코드에서 도달 할 수없는 점을 표시하는 표준 방법이 있습니까? Java 언어 사양 자바 SE 8 판 당

그것이 도달 할 수없는이기 때문에 문을 실행 할 수없는 경우 컴파일 타임 오류입니다.

표준은 및 일반적으로 완료 의미 할 수/도달 도달 무엇 정확하게 정의하기 위해 계속된다.

따라서 코드에서 도달 할 수없는 지점에 assert false; 또는 throw new RuntimeException("can't reach here");과 같은 문을 삽입 할 수 없으므로 컴파일 오류가 발생합니다.

일부 특수 구문 (예 : //unreachable)의 주석과 같이 컴파일 오류가 발생하지 않고 도달 할 수없는 지점을 코드에 표시하는 표준 또는 일반적인 연습 방법이 있습니까? 바라건대,이 표시가 실제로 도달 할 수없는 지점에 해당하는지 자동으로 확인할 수있는 보푸라기 도구가 존재하기를 바랍니다 (this question). 특정 C 코드베이스의 특수 주석에 대해 묻습니다.

이유는 내가 (또는 현재) return 문으로 끝나는 전환 case 내에서 if/else if/else 블록의 긴 체인을 포함하는 코드 조각이 있기 때문입니다. 그러나 또 다른 조건부 블록이 추가되어 return 문으로 끝나는 것을 잊어 버리므로 switch 문에서 의도하지 않은 fall-through가 발생할 수 있습니다. 또 다른 잠재적 인 용도는 특정 조건부 코드 블록이 항상 루프에서 깨지도록하는 것입니다.

+1

귀하의 질문은 가을을 통한 사례 진술을 감지 할 수 있는지 물어보아야한다고 생각합니다. 연결할 수없는 코드가 컴파일되지 않습니다 –

+0

질문을 올바르게 받아들이는지 확실하지 않지만 예, Java 컴파일러가이 점을 표시하고이를 컴파일하기 위해 코드를 수정해야합니다. 비록 자바 컴파일러 100 %가 코드에서 도달 할 수없는 모든 문장을 보여줄 것이라고 생각하지 않는다. 도달 할 수없는 한 문장으로도 코드가 이미 손상되었다. 예를 들어 IDE, Eclipse에서 도달 할 수없는 명령문 컴파일 오류를 볼 수 있습니다. –

+1

그런데'fallthrough'는 이미 javac lint 옵션입니다 –

답변

0

도달 할 수없는 지점을 컴파일 오류가 아닌 방식으로 표시하는 방법이 있는지 궁금합니다.

Java 언어는 코드를 주석 처리하는 것 외에도이를 수행 할 수있는 방법이 없습니다.

관련 문제