Error란 사용자에 의한 illegal operation으로 프로그램의 비정상적 작동을 초래한다.
프로그래밍 에러는 종종 프로그램이 컴파일되거나 실행될 때까지 발견되지 않는다.
일부 에러들은 프로그램이 컴파일되거나 실행되는 것을 막는다. 그러므로 에러들은 컴파일하거나 실행하기 전에 제거되어야한다.
가장 흔한 에러들은 넓게 다음과 같이 분류될 수 있다.
● Syntax Errors(구문 오류)
C/C++의 구문을 작성할 때 규칙을 어겼을 때 발생하는 에러. 이 컴파일 에러는 코드가 컴파일되기 전에 반드시 고쳐져야할 무언가가 있다고 암시한다. 이런 종류의 모든 에러들은 컴파일러에 의해 발견되며 그러므로 "compite-time errors"라고 알려져 있다.
가장 흔한 syntax error는
① missing parenthesis(})
② Printing the value of variable without declaring it
③ Missing semicolon
-Syntax of a basic construct is written wrong
→ example: while loop
● Run-time Errors(런타임 오류)
컴파일 성공 후에 프로그램 실행 중(run time) 발생하는 에러.
가장 흔한 런타임 에러 중 하나는 Division Error라고 불리는 0으로 나누는 실수이다. 이런 종류의 에러는 컴파일러가 에러가 발생한 그 줄을 가리키지 않기 때문에 찾아내기 힘들다.
-예:
이 예시에서 Division by zero error가 발생했다. 이것은 프로그램을 실행할 때 발생하는 run-time error의 한 종류이다.
● Linker Errors(링커 오류)
컴파일 후 Ctrl+F9키를 눌러서 실행할 때 메인함수의 객체로 다른 객체 파일들을 연결할 때 발생.
실행 파일이 만들어질 수 없을 때 에러가 발생한다. 이것은 잘못된 function prototyping, incorrect header files 때문에 발생할 수 있다. 가장 흔한 linker error 중 하나는 main()이라고 쓰지 않고 Main()이라고 쓰는 것이다.
● Logical Errors(논리적 오류)
프로그램을 컴파일하고 실행할 때, 특정한 입력이 들어가면 원하던 결과가 나오지 않는다.
결과는 틀렸지만 에러가 없다고 나오는 것을 논리 에러라고 한다. 프로그래밍을 처음 시작하는 사람들에게 주로 나타나는 가장 흔한 에러들이다. 이러한 에러들은 단지 프로그래머의 논리적 생각에 달려 있고, 만약 실행대로 줄을 따라가고 왜 그 프로그램이 그러한 실행 경로로 갔는지 결정한다면 쉽게 고칠 수 있다.
결과가 출력되지 않는다.
● Semantic Errors(의미론적 오류)
프로그램에서 적힌 문장이 컴파일러에게 의미 없을 때 발생한다.
출처: https://www.geeksforgeeks.org/errors-in-cc/
'AI > Materials' 카테고리의 다른 글
Pytorch 함수들 (0) | 2020.02.25 |
---|---|
Binary Search in C++(Recursive and Iterative) (0) | 2019.09.22 |