본문 바로가기
다양한 TIP

에러코드(오류)에 관한 정리 TOP 7

by 유기농프로그래밍 2023. 3. 13.
반응형

Divide-by-zero 오류

  • 발생 조건: 정수 또는 부동 소수점 수를 0으로 나눌 때
  • 예시: int x = 5 / 0;, double y = 3.14 / 0.0;
  • 대처 방법: 0으로 나누기를 하기 전에 나누는 값이 0인지 검사하여 예외 처리 또는 조건문으로 처리합니다.

 

잘못된 메모리 접근 (Invalid memory access)

  • 발생 조건: 메모리 할당이 잘못된 경우 또는 포인터를 잘못 사용한 경우
  • 예시: int* p = nullptr; *p = 10;, int arr[5]; arr[5] = 0;
  • 대처 방법: 포인터나 배열 인덱스 범위를 검사하여 메모리 접근이 유효한지 확인하고, 메모리 할당이 제대로 이루어졌는지 검사합니다

 

배열 경계 초과 (Array out of bounds)

  • 발생 조건: 배열 인덱스가 배열의 범위를 벗어난 경우
  • 예시: int arr[5]; arr[5] = 0;, for (int i = 0; i < n; i++) { arr[i] = i; }
  • 대처 방법: 배열 크기와 인덱스 범위를 검사하여 인덱스가 유효한 범위 내에 있는지 확인하고, 유효하지 않은 인덱스로 접근하지 않도록 조치합니다.

 

NULL 포인터 역참조 (NULL pointer dereference)

  • 발생 조건: NULL 값을 가지는 포인터를 역참조할 때
  • 예시: int* p = nullptr; int x = *p;
  • 대처 방법: 포인터가 NULL 값을 가지는지 먼저 검사한 후, NULL 값을 가지는 경우 예외 처리 또는 조건문으로 처리합니다.

 

예외 발생 (Exception thrown)

  • 발생 조건: 예기치 않은 상황이 발생하여 예외가 발생한 경우
  • 예시: throw std::runtime_error("Unexpected error occurred.");
  • 대처 방법: 예외 처리를 통해 예외가 발생한 상황을 처리하거나, 예외가 발생하지 않도록 대처 방법을 검토합니다.

 

문법 오류 (Syntax error)

  • 발생 조건: 코드 작성 시 문법 규칙에 어긋난 경우
  • 예시: int x = 1 + ;
  • 대처 방법: 문법 오류를 수정하여 코드를 다시 작성합니다.

 

타입 오류 (Type error)

  • 발생 조건: 변수나 함수 등의 타입이 예상과 다른 경우
  • 예시: `int x = "Hello";
반응형

댓글