주니 개발 도서관

자바(JAVA)

0607~0610 Exception(오류) 정리

주니홍 2022. 6. 11. 18:15
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