프로그램 오류에는 일반적으로 구문 오류 , 논리 오류 및 작동 이상 등이 포함됩니다.
다음을 각각 소개합니다.
1. 구문 오류:
말할 필요도 없이, 이전 연구를 통해 프로그램 코드가 문법 요구 사항을 충족하지 않으면 컴파일러가 컴파일 및 링크 중에 오류를 표시한다는 사실을 모두가 알고 있어야 하며 이는 쉽게 찾을 수 있습니다.
2. 논리적 오류:
이 경우에는 컴파일에 문제가 없고, 오류도 없으며, 실행이 가능하다는 뜻입니다. 그러나 프로그램의 출력 결과나 실행 프로세스가 예상과 다르며 예상한 결과를 얻을 수 없는 이러한 종류의 오류를 논리 오류라고 하며 이를 발견하려면 지속적인 디버깅과 테스트가 필요합니다.
3. 작동 이상:
실행 예외(Exception)란 메모리 부족, 존재하지 않는 파일 열기, 0으로 나누기 등 실행 프로세스 중 예상치 못한 상황으로 인해 프로그램이 비정상적으로 종료되는 것을 말합니다.
우리는 처음 두 가지를 이미 알고 있으며, 세 번째는 이번 장에서 자세히 설명할 내용입니다. 정상적인 상황에서는 프로그램 예외 오류를 피할 수는 없지만 예측할 수 있으며 프로그램 충돌을 방지하고 프로그램의 견고성을 보장하기 위해 예측 처리를 수행할 수 있습니다. 이 동작을 예외 처리 라고 합니다.
과거 연구에서는 if...else를 통해 호출 함수의 반환 값을 판단하거나 코드를 실행하기 전에 주요 데이터를 확인하는 등 예외를 캡처하고 처리하는 방법이 많이 있었습니다. 문제가 발생하면 exit( ) 또는 abort() 함수를 사용하여 프로그램을 종료합니다.
예를 들어:
cin>>a>>b;if(b==0)//예외 잡기{cout<<Drivide0!<<endl;}else{cout<<a<</<<b<<=a/b<< 끝;}
보시다시피, 과거 연구에서는 핵심 부분을 포착하고 방지하기 위해 if 판단을 사용하는 경우가 많았습니다. 그러나 이 방법은 사용 중에 if 판단이 너무 많아 프로그램의 가독성을 저하시키는 경우가 많습니다. 함수의 반환 값을 결정하는 경우 값을 반환하지 않는 함수에 대해서는 무력합니다. 이러한 이유로 C++에서는 예외 처리 솔루션을 제공합니다.