본문 바로가기
Java/JAVA 문법

자바 기초 배우기 28일차 [ 예외처리, TryCatch문 ]

by lchit 2020. 1. 5.

[ 예외란? ]

자바에서 오동작이나 결과에 나쁜 영향을 줄 수

있는 실행을 할 때 발생하는 오류

문법에 맞지 않는 코드는 이클립스가 먼저 잡아준다.

사용자가 잘 못 입력했거나,

배열의 범위를 초과했거나

이런 오류같은 경우에는 실행 전에

미리 잡아줘야 할 필요가있다

[ 예외발생 사례 ]

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와 상관없이 무조건 출력되는

실행작업을 적는 공간인데

구지 적지않아도 구조상 오류는 발생하지않는다.