[ 예외란? ]
자바에서 오동작이나 결과에 나쁜 영향을 줄 수
있는 실행을 할 때 발생하는 오류
문법에 맞지 않는 코드는 이클립스가 먼저 잡아준다.
사용자가 잘 못 입력했거나,
배열의 범위를 초과했거나
이런 오류같은 경우에는 실행 전에
미리 잡아줘야 할 필요가있다
[ 예외발생 사례 ]
1) zeroDivision > ArithmeticException
2) 배열크기 초과시 > ArrayIndexOutOfBoundsException
3) 잘못입력했을시 > InputMismatchException
.
.
.
등등등 여러 오류가 있다
이중 inputMismatchException
즉, 입력의 타입이 잘못되었을 경우로
try - catch 문을 살펴 보겠다
[ 예외를 처리하는 방법 ]
try
{
예외가 발생할 수 있는 명령;
}
catch(처리할 예외타입 선언)
{
예외 발생시 실행할 명령;
}
fainally {
예외 발생 여부와 상관 없이 무조건 실핼될 문장
}
[ 예제 ]
1 + 1 = ?
의 문제를 내고 다음과 같은
입력 예외 발생 을 처리하는 것이다
일단 예외발생 사례를 보자
다음과 같은 while문을 작성했다
사용자에게 정수를 입력받아
맞추는지 틀리는지에 따라
2를 입력시는 berak;
다른숫자를 입력시에는 "오답이야"
출력후 while true에 따라 돌아가지만
정수가아닌수를 입력했을시
예외인 InputMismatchException이 발생한다
프로그램은 동작을 멈추고 디버그창을 띄운다
이럴때 필요한게 예외가 발생할 수 도있는 구간에
예외처리를 하여 매끄럽게 넘어갈 수 있도록
해줘야한다.
기존 실행 작업을
try{ }로 감싸주었다
그런 뒤
catch(InputMismatchException e) { }를 입력해주어서
캐치문을 만들었는데
catch뒤 괄호 안에는 발생할 예상 오류타입과 그 오류타입클래스에
해당하는 객체명을 지어줘야한다
그런뒤 { }안에 ( )안의 예외가 발생했을시
실행할 문구를 입력해놓으면 오류가 발생했을시
오류에 관련된 글이 출력 되지않고
{ } 안의 작업이 실행되며 프로그램은 계속 돌아간다.
finally는 try,cacth와 상관없이 무조건 출력되는
실행작업을 적는 공간인데
구지 적지않아도 구조상 오류는 발생하지않는다.
'Java > JAVA 문법' 카테고리의 다른 글
자바 기초 배우기 30일차 [ 컬렉션 - ArrayList Iterator, HashMap ] (0) | 2020.01.05 |
---|---|
자바 기초 배우기 29일차 [ 제네릭, 컬렉션 - Vector ] (0) | 2020.01.05 |
자바 기초 배우기 27일차 [ Math클래스, Calendar클래스 ] (0) | 2020.01.05 |
자바 기초 배우기 26일차 [ String, StringBuffer, StringTokenizer / StringClass 3종세트 ] (0) | 2020.01.05 |
자바 기초 배우기 25일차 [ Wrapper, ForEach문, 객체배열, toStinrg(), 박싱,언박싱, 오토박싱 ] (0) | 2020.01.05 |