[ JAVA ] 예외와 예외처리 ( 1 )

2022. 1. 13. 21:35JAVA

 

 

 

사용자가 서비스를 이용하는데에 불편함을 주는 상황을 어떻게 해결해야하는지 분석할 수 있니?

 

 

예외(Exception)란?

- 코드상으로는 문법 문제가 없으나, 실제 수행과정에서 발생하는 문제들!

- 프로그램 실행 중 발생하는 오류 중에서 처리가 가능한 것을 의미한다.

 


- 예외가 발생하면 프로그램은 즉시 종료된다.

- 프로그램을 끝까지 사용할 수 없게 된다.

 

 

 

예외처리란?

- 프로그램에 예외가 생겨 비정상 종료 (강제 종료)가 되지 않도록 사전에 예방하는 코드를 만드는 과정을 의미한다.

 


- 어떤 예외가 어떻게 발생할지 예상이 불가능하다

- If문 사용을 하지 못한다.

- Try - catch - Finally 문 사용해서 해결해준다.

 

 

 

< Try - Catch 문 >

 


만약에 Try에서 문제가 발생한다면, 
Catch로 이동해!


try {

  예외가 발생할 가능성이 있는 처리
}

catch (예외형 변수명) {

  예외가 발생했을 때 실행하는 처리
} 
 

 

- 정상 작동이 된다면 예외 발생하지 않기 때문에 Catch로 이동하지 않는다.

- Try에서 예외가 발생한다면 바로 Catch문으로 이동!

 

 

 

 

 

ex) Try - Catch 문 사용 전

 

 

num을 10이라 하였을 때 [10 / 사용자에게 입력받은 값으로 계산을 하는 과정이다

하지만 0을 입력하였을 때 예외가 발생하여 무한 루프임에도 불구하고 강제 종료되는 모습을 볼 수 있다!

 

 

 

 

ex) Try - Catch 문 사용 후

 

package day0112;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Test1 {

	public static void main(String[] args) {

		int num=10;

		while(true) {
			Scanner sc= new Scanner(System.in);
			System.out.println("번호 입력 : ");

			try {
				int i=sc.nextInt();
				System.out.println(num/i);
			}

			catch(ArithmeticException e){
				System.out.println("0은 계산이 불가능합니다");
			}


		}

	}
}

 

 - Try - Catch 문 사용하여 실행하였을 때에는 강제 종료되지 않고 Catch문으로 빠져 실행되는 것을 볼 수 있다

 

- 예외가 발생할 것 같은 부분을  Try{ }로 감 싸준 후

Catch ( ) 안에 발생한 예외부분  ArithmeticException e 넣어주고 예외처리할 멘트를 적어준다.

 

 

 

 

 

< Try - Catch - Finally문 >

 


예외가 발생하든 안하든 무조건 실행하는 명령


try {

  예외가 발생할 가능성이 있는 처리
}

catch (예외형 변수명) {

  예외가 발생했을 때 실행하는 처리
}

Finally{
예외가 발생하든 안하든 무조건 실행하는 명령;
}

 

ex) 

 

package day0112;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Test1 {

	public static void main(String[] args) {

		int num=10;

		while(true) {
			Scanner sc= new Scanner(System.in);
			System.out.println("번호 입력 : ");

			try {
				int i=sc.nextInt();
				System.out.println(num/i);
			}

			catch(ArithmeticException e){
				System.out.println("0은 계산이 불가능합니다");
			}

			finally {
				System.out.println("무조건 실행되는 문장");
			}
		}

	}
}

 

- Finally를 사용하여 무조건 실행되는 문장을 출력해보았다.

그 결과 i가 0이라 예외 처리한 문장과 같이 나오는 것을 볼 수 있다!

 

 

 

 

'JAVA' 카테고리의 다른 글

[ JAVA ] 예외와 예외처리 ( 3 )  (0) 2022.01.15
[ JAVA ] 예외와 예외처리 ( 2 )  (0) 2022.01.15
[ JAVA ] 형변환  (0) 2022.01.12
[ JAVA ] 메서드 ( 함수 )  (0) 2022.01.12
[ JAVA ] 배열 활용하여 서점 프로그램 구현하기  (0) 2022.01.12