다수가 사용하는 프로그램을 작성할땐 사용자가 어찌 사용하든 정상적으로 작동하는게 좋다.
문법오류 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;
}
'개발 소발 > 개발 C++(기초)' 카테고리의 다른 글
c++ OOP 객체지향 프로그래밍 (0) | 2019.08.02 |
---|---|
c++ assert,Ellpsis (0) | 2019.08.02 |
c++ 재귀적 함수호출 (0) | 2019.08.01 |
c++ vector (size,capacity,reserve) vector를 stack처럼 사용하기 (0) | 2019.07.31 |
c++ 스택Stack 힙Heap (0) | 2019.07.31 |