C 언어 - 예외처리

컴퓨터/C

728x90
반응형

예외처리란?

프로그래머가 다양한 소스코드를 작성하여 프로그램을 만들다 보면 예상하지 못한 다양한 버그와 만나게 된다. 이때 발견된 버그들을 다시 발생하지 않도록 수정을 해야 된다. 이런 예상하지 못한 버그들의 발생을 방지 또는 없애기 위해 하는 행위들 예외처리라고 한다.

 

기본 예시

만약 아래와 같은 프로그램을 만들었다고 생각해 보도록 하자

 

  • 원하는 음료를 선택하세요.
    • 1. 콜라
    • 2. 사이다
  • 구매할 메뉴의 번호를 입력하세요 : 

여기서 프로그래머의 의도된 선택지는 2개입니다. 이선 택지를 선택했을 때의 경우는 문제가 되지 않는다. 하지만 아래의 경우 어떠한 문제가 발생할지 모른다.

  • 숫자 1 또는 2 이외의 숫자를 입력한다면?
  • 숫자가 아닌 문자를 입력한다면?

이런식으로 다양한 프로그래머가 의도하지 않는 동작이 이루어졌을 때 예상하지 못한 문제를 방지하기 위한 기법을 예외 처리라고 한다.

 

소스코드를 통한 논리적 예외처리

C언어의 경우 다양한 예외를 프로그래머가 논리적인 소스코드 절차를 통해 처리합니다.

  • 예외 처리를 고려하지 않는 소스코드
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int input;
	printf("음료를 선택하세요\n");
	printf("1. 콜라\n");
	printf("2. 사이다\n");
	printf("구매할 메뉴의 번호를 입력 하세요 : ");
	scanf("%d", &input);
	if (input == 1) {
		printf("콜라를 구매 했습니다.\n");
	}
	else if (input == 2) {
		printf("사이드를 구매 했습니다.\n");
	}
	return 0;
}

만약 위와 같은 프로그램에서 다른 선택지를 입력한다면 아래와 같이 아무런 동작을 하지 않게 됩니다. 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int input;
	printf("음료를 선택하세요\n");
	printf("1. 콜라\n");
	printf("2. 사이다\n");
	printf("구매할 메뉴의 번호를 입력 하세요 : ");
	scanf("%d", &input);
	if (input == 1) {
		printf("콜라를 구매 했습니다.\n");
	}
	else if (input == 2) {
		printf("사이드를 구매 했습니다.\n");
	}
	else {
		printf("정확한 번호를 입력하지 않았습니다.\n");
	}
	return 0;
}

 

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :