개인 재정 Java 프로그래밍의 오류 메시지 태클

Java 프로그래밍의 오류 메시지 태클

차례:

비디오: [자바를 자바보자]37. 오류 처리(try{} catch{} finally{} 2024

비디오: [자바를 자바보자]37. 오류 처리(try{} catch{} finally{} 2024
Anonim

때로는 오류 메시지가 용감한 프로그래머의 마음에 두려움을 줄 수 있습니다. 다행히도 도움이되고 진정시키는 조언은 여기에 있습니다.이 메시지 중 하나를 볼 때 문제를 해결하는 데 도움이되는 조언.

NoClassDefFoundError

코드를 실행하려고 할 때이 오류가 발생합니다. 그러니 먼저 자신에게 물어보십시오. 코드를 컴파일하려고 했습니까? 그렇다면 컴파일 할 때 오류 메시지가 나타 났습니까? 오류 메시지를 보았다면, 당신이 고칠 수있는 것들을 찾으십시오. 자바 파일. 이러한 것들을 고치고 컴파일하십시오. 자바 파일을 다시.

일반적으로 JavaPrograms 디렉토리에 코드를 보관하는 경우이 JavaPrograms 디렉토리에서 작업하고 있는지 확인하십시오. (Windows의 경우 명령 프롬프트에 Java 프로그램이 표시되는지 확인하십시오.)

이름이 올바른지 확인하십시오. 작업 디렉토리에있는 클래스 파일. 예를 들어 MyGreatProg라는 프로그램을 실행하려는 경우 MyGreatProg라는 파일을 찾습니다. 클래스를 작업 디렉토리에 저장하십시오.

클래스 경로에. 필요한 클래스 파일. 예를 들어, 모든 Java 코드가 작업 디렉토리에 있으면 클래스 경로에 점이 있는지 확인하십시오.

NoSuchMethodError

이 오류 메시지가 나타나면 메서드 이름의 철자가 잘못되었거나 일관되지 않은 대소 문자가 있는지 확인하십시오. main (대문자가 아님)의 대문자를 확인하십시오.

java 명령을 실행할 때 (또는 환경에서 프로그램을 실행하기 위해 일반적으로하는 작업을 수행 할 때) 실행하려는 클래스에 자체 main 메소드가 포함되어 있습니까? 그렇지 않다면, main 메소드로 클래스를 찾고 그 클래스를 대신 실행하십시오.

기호를 해석 할 수 없음

기호를 해석 할 수없는 오류 메시지가 표시되면 모든 식별자와 키워드의 철자와 대소 문자를 검사하십시오. 그런 다음 다시 확인하십시오.

미해결 된 기호가 변수 인 경우이 변수의 선언이 올바른 위치에 있는지 확인하십시오. 예를 들어 for 루프의 초기화에서 변수가 선언 된 경우 해당 변수를 for 루프 외부에서 사용하려고합니까? 변수가 블록 (중괄호 쌍) 안에 선언 된 경우 해당 변수를 블록 외부에서 사용하려고합니까?

마지막으로, 변수의 선언에서 오류를 찾으십시오. 컴파일러가 변수의 선언에서 오류를 발견하면 컴파일러는 나머지 코드에서 변수 이름을 해석 할 수 없습니다.

예상 '; '(또는 다른 것으로 예상)

'; '예상대로 코드를 살펴보고 각 문과 각 선언이 세미콜론으로 끝나야합니다.그렇다면 누락 된 세미콜론에 대한 컴파일러의 추측이 잘못되었을 수 있습니다. 다른 (겉으로보기에는 관련이없는) 오류를 수정하고 코드를 다시 컴파일하면 가짜를 제거 할 수 있습니다. '; '예상 메시지.

누락 된 괄호는 if 문과 루프의 조건을 확인하십시오. 각 조건이 괄호로 묶여 있는지 확인하십시오. 또한 매개 변수 목록 (괄호로 묶여 있음)이 각 메서드의 이름 뒤에 오는지 확인하십시오.

예상되는 메시지의 경우 할당 문을 확인하십시오. 각 할당 문이 메서드 안에 있는지 확인하십시오. (초기화가있는 선언은 메소드 외부에있을 수 있지만, 오래된 일반 대입 명령문은 메소드 안에 있어야 함을 기억하십시오.) 또는 'interface'예상 메시지의 철자를 단어 클래스 올바르게. 코드에 가져 오기 선언이있는 경우 import라는 단어의 철자와 대소 문자를 확인하십시오.

누락 된 메서드 본문 또는 추상 선언

컴파일러에서 메서드 머리글을 볼 때 누락 된 메서드 본문을 가져 오거나 추상 메시지를 선언하지만 컴파일러에서 메서드 본문을 찾을 수 없습니다. 메소드 헤더의 끝 부분을보십시오. 세미콜론으로 헤더를 끝내면 세미콜론을 제거하십시오.

헤더가 세미콜론으로 끝나지 않으면 헤더 바로 다음의 코드를 확인하십시오. 헤더 바로 뒤에 오는 코드는 열린 중괄호 (메소드 본문의 시작 부분)로 시작해야합니다. 헤더와 본문의 중괄호 사이에 일부 코드가있는 경우 해당 코드를 다른 곳으로 이동하는 것이 좋습니다.

'if'가없는 'else'

if 절의 수와 else 절의 수를 비교합니다. if 절은 else 절을 ​​가질 필요는 없지만 각 else 절은 if 절에 속해야합니다.

괄호 안에 if 조건을 동봉하지만 조건 뒤에 세미콜론을 넣지 마십시오. 실수로 if 조건을 세미콜론으로 끝 냅니까? if와 else 사이의 모든 줄을보십시오. if와 else 사이에 둘 이상의 명령문을 발견하면 중괄호를 찾으십시오. if와 else 사이의 문장이 중괄호로 둘러싸여 있지 않으면 범인을 발견했을 수 있습니다.

정적 컨텍스트에서 비 정적 변수를 참조 할 수 없음

정적 컨텍스트 오류 메시지에서 비 정적 변수를 참조 할 수없는 경우가 있습니다. 그러나 초보 프로그래머에게는 가장 흔한 원인은 주 방법 밖에 선언 된 변수를 갖는 것입니다. 그런 변수를 선언하는 것은 죄가 없지만 main 메소드가 항상 정적이기 때문에 main 메소드가 main 메소드 외부에서 선언 된 변수를 참조하도록하는 데 특별한 도움이 필요합니다.

가장 빠른 해결책은 변수의 선언 앞에 static이라는 단어를 넣는 것입니다. 하지만 먼저이 변수의 선언이 main 메소드 내부에없는 이유를 자문 해보십시오. 좋은 이유가 없다면 변수의 선언을 main 메소드 안에 있도록 이동하십시오.

FileNotFoundException (시스템이 지정된 파일을 찾을 수 없음) 또는 EOFException

FileNotFoundException 메시지가 나타나면 코드에 명명 된 파일이 실제로 있는지 확인하십시오.(시스템 탐색기를 사용하거나 명령 프롬프트 창을 사용하여 파일을 찾으십시오.) 코드의 철자를 하드 드라이브의 파일 이름과 비교하여 다시 확인하십시오.

하드 드라이브에 올바르게 이름이 지정된 파일을 찾은 경우 파일이 올바른 디렉토리에 있는지 확인하십시오. (작업 디렉토리에서 실행되는 프로그램의 경우 일반 데이터 파일도 작업 디렉토리에 있습니다.) Windows 사용자 인 경우 시스템이 추가 작업을 수행하지 않았는지 확인하십시오. 파일을 만들 때 txt 확장자. (명령 프롬프트 창을 사용하여 파일의 이름을 확인하면 Windows 탐색기에서.txt 확장명을 숨길 수 있으며 항상 혼동을 일으킬 수 있습니다.)

EOFException 인 경우 파일보다 더 많은 데이터를 읽으려고합니다. 파일. 매우 자주, 작은 논리 오류로 인해 프로그램이이를 수행합니다. 따라서 프로그램 실행의 모든 ​​단계를 면밀히 검토하십시오. 부적절한 준비가 끝난 루프 나 배열의 가장 큰 인덱스를지나 배열 값을 읽는 것과 같은 미묘한 일들을 찾으십시오.

Java 프로그래밍의 오류 메시지 태클

편집자의 선택

디지털 사진의 천재 - 인형

디지털 사진의 천재 - 인형

디지털 사진의 천재성은 사진과 함께 사진을 찍을 수 있다는 사실입니다. 디지털 카메라로 촬영 한 후 카메라의 LCD 모니터에서 즉시 볼 수 있습니다. 이것은 솔직히 디지털 사진의 저주이기도합니다. 사진 작가가 즉각적인 만족을 얻고 재사용 가능한 메모리에 수백 개의 이미지를 캡처 할 수 있다는 사실은 ...

Canon Rebel T3 시리즈 카메라의 크리에이티브 자동 설정 사용 - 장면 모드를 사용하면 더미

Canon Rebel T3 시리즈 카메라의 크리에이티브 자동 설정 사용 - 장면 모드를 사용하면 더미

Canon EOS Rebel T3 또는 T3i에서 카메라는 장면에 대한 전통적인 "룩"을 사용하여 피사체를 렌더링하는 설정을 선택합니다. 크리에이티브 자동 모드를 사용하면 좀 더 제어 할 수 있습니다. 이름에서 알 수 있듯이이 모드는 여전히 대부분 자동이지만 체크하면 ...

Canon EOS 80D에서 FlexiZone 단일 자동 초점 사용 방법 - 더미

Canon EOS 80D에서 FlexiZone 단일 자동 초점 사용 방법 - 더미

FlexiZone- 단일 AF 모드에서는 EOS 80D에서 특정 자동 초점 포인트를 선택할 수 있습니다. 왼쪽과 같이 화면 중앙에 작은 하나의 초점 프레임이 보입니다. 이미지는 라이브 뷰 모드에서 프레임이 어떻게 표시되는지 보여줍니다. 영화 모드에서는 좀 더 큽니다. 어느 쪽이든 다음 단계는 ...

편집자의 선택

Excel 2007 SmartArt 그래픽 서식 지정 - 더미

Excel 2007 SmartArt 그래픽 서식 지정 - 더미

워크 시트에 SmartArt 그래픽을 만든 후에 Excel 2007에서 많은 SmartArt 도구의 상황 별 탭에서 해당 그래픽의 서식을 지정하는 방법. 예를 들어, 그래픽의 색 구성표와 스타일을 변경할 수 있으며 그래픽의 개별 모양에 서식을 변경할 수 있습니다. 색 구성표를 변경하고 ...

수식 Excel의 연산자 - 인형

수식 Excel의 연산자 - 인형

연산자로 알려진 기호를 사용하여 Excel 수식에서 수행 할 작업을 정의 할 수 있습니다. 이 연산자 중 일부는 단순히 더하기, 빼기 및 곱하기 연산자입니다. 다른 연산자를 사용하면 값을 비교하는 등보다 복잡한 작업을 수행 할 수 있습니다. 예를 들어, 직원이 자신의 직무를 충족했는지 여부를 결정할 수 있습니다.

형식 Excel 2013의 리본에서 테이블 - 인형

형식 Excel 2013의 리본에서 테이블 - 인형

Excel의 2013 표 형식으로 Excel 기능을 사용하면 전체 데이터 범위를 테이블로 정의하고 모든 데이터를 한 번에 조작 할 수 있습니다. 셀 범위를 표로 정의한 후에는 표 스타일 갤러리에서 새 스타일 축소판을 클릭하기 만하면 형식을 완전히 수정할 수 있습니다. ...

편집자의 선택

Photoshop Elements 11 - 인형

Photoshop Elements 11 - 인형

에서 사진 효과 적용 방법 Photoshop Elements 11은 다양한 효과 (사진 효과라고도 함)을 사용하여 사진에 적용 할 수 있습니다. 일부 효과는 선택한 레이어의 복제물을 자동으로 생성하지만 다른 효과는 병합 된 이미지에만 적용됩니다.

Photoshop Elements 11에 사전 설정 패턴을 적용하는 방법 - 여러 가지를 사용하여 패턴을 적용 할 수 있지만

Photoshop Elements 11에 사전 설정 패턴을 적용하는 방법 - 여러 가지를 사용하여 패턴을 적용 할 수 있지만

Photoshop Elements 11의 다른 도구 인이 방법은 패턴을 채우기로 적용하는 것입니다. 사전 설정 패턴을 사용하여 레이어 나 선택 영역을 채우려면 다음 단계를 수행하십시오. 레이어 패널에서 레이어를 선택하거나 패턴을 채울 선택을하십시오. 만들기 ...

Photoshop Elements 9에서 사진 필터 조정 적용 방법 - Photoshop Elements에서

Photoshop Elements 9에서 사진 필터 조정 적용 방법 - Photoshop Elements에서

사진 필터 명령을 사용하여 이미지에 사진 필터를 적용하고 특수 효과를 추가 할 수 있습니다. 예전에는 사진 작가들이 카메라의 렌즈 앞에 컬러 유리 필터를 놓아 빛의 색온도를 조절했습니다. 이들은 따뜻하게하거나 차가워지기 위해 이렇게했습니다.