2022. 6. 30. 20:24ㆍJava
자바로 프로그래밍을 하다보면 여러 에러가 발생합니다.
이에 따라 자주 발생하는 기본적인 에러와 해결방법을 정리하겠습니다.
1. cannot find symbol 또는 cannot resolve symbol
지정된 변수나 메서드를 찾을 수 없다는 뜻으로 선언되지 않은 변수나 메서드를 사용하거나, 변수 또는 메서드의 이름을 잘못 사용한 경우에 발생합니다. 철자 뿐 만아니라 대소문자의 일치여부도 확인하여야 합니다.
2. ';' expected
세미콜론 ';'이 필요한 곳에 없다는 뜻입니다. 자바의 모든 문장의 끝에는 ';'을 붙여주어야 합니다.
3. Exception in thread "main" java.lang.NoSuchMethodError: main
'main메서드를 찾을 수 없다'는 뜻으로 클래스 내에 main메서드가 존재하지 않거나,
메서드 선언부 'public static void main(String[] args)' 에 오타가 존재하는 경우에 발생합니다.
이 또한 철자 뿐 만아니라 대소문자의 일치여부도 확인하여야 합니다.
4. Exception in thread "main" java.lang.NoClassDefFoundError: Hello
'Hello라는 클래스를 찾을 수 없다.' 는 뜻입니다. 클래스 'Hello'의 철자를 확인해 보고 이상이 없으면 클래스 파일(*.class)이 생성되었는지 확인하여야 합니다. 클래스 파일이 존재하는데도 동일한 메시지가 반복된다면 클래스패스(classpath)의 설정이 바르게 되었는지 확인해야 합니다.
5. illegal start of expression
문장(또는 수식, expression)의 앞부분이 문법에 맞지 않는다는 의미 입니다.
문장에 문법적 오류가 있을 때 발생합니다.
예를 들어 괄호 '(' 나 '{'를 열고서 닫지 않거나, 수식이나 if문, for문 등에 문법적 오류가 있을 때, 또는 public이나 static과 같은 키워드를 잘못 사용한 경우에도 발생합니다. 에러가 발생한 곳이 문법적으로 옳은지 확인해야 합니다.
6. class, interface, or enum expected
보통 괄호의 개수가 일치하지 않는 경우에 발생합니다. 괄호의 개수가 같은지 확인해야 합니다.
마지막으로 에러가 발생하였을때, 아래의 순서대로 처리해보면 도움이 됩니다.
1. 에러 메시지를 잘 읽고 해당 부분의 코드를 살펴본다. 이상이 없다면 해당 코드의 주위(윗줄과 아래 줄)도 함께 살펴본다.
2. 그래도 이상이 없으면 에러 메시지는 잊어버리고 기본적인 부분을 재확인한다. 에러는 사소한 것인 경우가 많다.
3. 의심 가는 부분을 주석처리하거나 따로 떼어내서 테스트 한다.
에러 메시지가 실제 에러와는 관계 없는 내용일때도 있지만, 대부분의 경우 에러 메시지만 잘 이해해도 문제가 잘 해결되는 경우가 많으므로 에러 해결을 위해 제일 먼저 해야 할 일은 여러 메시지를 잘 읽는 것입니다.