다수가 사용하는 프로그램을 작성할땐 사용자가 어찌 사용하든 정상적으로 작동하는게 좋다.

문법오류 syntax error
- 코드를 잘못 작성했을때를 말한다.

문맥오류 semantic error
- 논리오류:프로그래밍 로직 자체가 틀렸을때를 말한다.


가정위반 violated assumption
- 사용자가 개발자가 의도한 행위가 아니게행동하는 경우를 말한다.

방어적으로 프로그래밍하는 이유
작성한 프로그램이 에러가 방지차원.
사용자를 믿는게 아닌 개발자가 미리 에러를 방지한다.
방어적프로그래밍은 시간이 오래걸리지만 꼭해주어야한다.

 

#include <iostream>
#include <string>

using namespace std;
int a = 0;
int main()
{
	string s = "test test test";
	while (true)
	{
		//사용자에게 범위를 말한다.
		cout << "input from 0 to " << s.size() - 1 << endl;
		int x;
		cin >> x;
		//사용자에게 범위를 말하는것만 아니라 방어까지 해놓는다.
		if (x <= s.size() - 1) {
			cout << "GOOD! " << s[x] << endl;
			break;
		}
		else {
			cout << "again" << endl;
		}

	}

	return 0;
}

+ Recent posts