Exceptin분석 방법
- 몇번라인의 오류인지 마지막줄에 알려줌
- 첫째줄에 무슨 종류의 오류인지 알려줌
복사하여 구글링으로 확인
1.
오류 이름 및 라인
java.util.inputMismatchException
Test04.java : 32
오류의 발생이유
- 입력한 수가 데이터 형과 맞지 않을때
- 데이터 형의 범위를 넘었을 경우
해결방법
32번 라인은 int type의 값을 입력받아야하지만
String type의 값을 입력하여 오류발생
- 32번 라인전에 "정수(int값)를 입력 = " 출력하여 설명넣어주기
2.
오류 이름 및 라인
java.lang.ArithmeticException
Test05.java:18
오류의 발생이유
- 정수는 0으로 나눌 수 없기 때문에 오류
해결방법
- 입력받은 값이 0일경우 지나갈수 없도록 조건문으로 막아둔다
- try / catch 문으로 18번 라인을 가두고
catch을 이용하여 예외처리한다 ( 아직 안배운 코드 / 배우고 다시 정리)
3.
오류 이름 및 라인
java.util.inputMismatchException
Test10.java:21
오류의 발생이유
- 오류발생라인 21번을 보면 int값이 아닌 다른 타입의 값이 입력되어 오류
- 콘솔을 잘 보면 정수 입력에는 입력이 되어있지 않다 **
버퍼 관련 오류로서 next()의 경우 공백을 기준으로 값을 가져간다
버퍼에 "응애 나 애기"에서 "응애"를 가져가고 "나 애기"라는 값이 남는다
이후 들어온 nextInt()에 "나 애기"가 강제로 들어가며 오류 발생 - 비슷한 경우로 nextLine을 제외한 입력문은 엔터를 버퍼에 남긴다
엔터값을 가져갈수 있는 nextLine이기 때문에 버퍼의 엔터값을
가져가버린다. (입력을 받기도 전에 입력을 끝내버린다)
ㅡ> 그래서 입력받기전에 nextLine();을 사용하여 버퍼의 엔터값을 미리 빼준다
오류 해결
- 19번 라인의 next()를 nextLine()으로 변경한다
4.
오류 이름 및 라인
java.lang.ArrayIndexOutOfBoundsException
Test04.java:24
오류의 발생 이유
- 배열의 index가 벗어난 값을 입력하여 나타나는 오류
오류 해결
- 오류난 24번라인을 확인해보면 stu [ i ] 의 오류로 보인다
벗어난 입력값이 왜 들어갔는지 확인해보자 - for문의 i값을 확인해보면 1,2,3의 i값을 증가시키며 3번의 반복을 한다
이때 1,2의 값은 index에 들어가지만 3의 값이 index를 벗어난다 - for문의 초기값을 0으로 설정, 조건식을 i < 3 으로하여 0,1,2의 값을 가지게 하도록 하자
'자바(JAVA)' 카테고리의 다른 글
(5) 배열과 배열관련 알고리즘 (0) | 2022.06.13 |
---|---|
(주말) 영상과제 (0) | 2022.06.13 |
(4) 중첩 반복문, 배열 (0) | 2022.06.10 |
(3) 반복문 (0) | 2022.06.09 |
(2) 연산자와 조건문 (0) | 2022.06.08 |