P&P C++ (1) Computation ,Errors

RushBsite·2021년 11월 25일
0

P&P C++

목록 보기
1/2

Computation

Data for Iteration - Vector

vector 구조

벡터는 가장 유용한 standard library data type


v 에는 size와 v의 elements 저장 위치를 가리키는 ptr 가 저장됨.

사용자 입력 예시

vector<string> words;
  for(string s; cin>>s && s != "quit";) 
  // 사용자 입력 있고(cin) string이 quit이 아닐시 반복
  	words.push_back(s);
  sort(words);
  for(string s : words)
  	cout<< s << '\n';

Errors

sources of Errors

Compile-time errors

  • Syntax errors (구문 오류)
  • Type errors

obj 파일 링킹 과정에서 함수나 변수의 연결 에러가 탐지됨

Run-time errors

실행 파일 작동시 메모리나 assert 관련 해서 작동 정지 하는 경우

Logic errors

프로그래머에 의해서만 탐지 가능(runs, but incorrect output)

How to report error?

Throwing an exception

예외를 발생시켜 오류를 보고한다.

class Bad_area{}; //오류 발생에 쓰이는 구조체(클래스)
int area(int length, int width)
  {
   if(length<=0 || width<=0) throw Bad_area{}; // {} 에 주의
   return length*width;
  }
 ...
 int main() {
   try{ int z = area(x,y);}
  catch(Bad_area) { cerr<< "오류\n"; } //throw  된 이후 여기로 옴
  }

Catch error

catch 문에서 error 구문을 출력하게 할 경우 what() 멤버함수 사용

#include <stdexcept> //invalid_argument 정의 되어있음
int main()
  try{
  	...
  	return 0;
  }
  catch (invalid_argument& e){
  	cerr << e.what() << endl; //what()으로 오류 내용 호출
  }
profile
게임 기획/개발 지망생

0개의 댓글