C++ 런타임 오류 해결 방법: '범위를 벗어난 예외'
C++로 프로그래밍할 때 런타임 오류가 자주 발생합니다. 일반적인 오류 중 하나는 배열 범위를 벗어난 오류인 '범위를 벗어난 예외'입니다. 이 오류는 유효한 인덱스 범위를 벗어나는 배열에 액세스하려고 할 때 발생합니다. 이러한 오류로 인해 프로그램이 중단되거나 예상치 못한 결과가 발생할 수 있습니다. 아래에서는 이 문제를 해결하는 방법을 설명하고 몇 가지 코드 예제를 제공합니다.
배열 범위를 벗어난 오류를 방지하기 위한 기본 원칙
배열 범위를 벗어난 오류는 일반적으로 유효한 범위를 넘어 배열 요소에 액세스하려고 할 때 발생합니다. 이 오류를 방지하려면 다음 원칙을 따라야 합니다.
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int index; cout << "请输入要访问的数组索引:"; cin >> index; if (index >= 0 && index < 5) { cout << "数组元素值为:" << arr[index] << endl; } else { cout << "索引超出有效范围!" << endl; } return 0; }
위의 예에서는 먼저 액세스하려는 배열 인덱스를 입력한 다음 조건 확인을 수행합니다. 인덱스가 유효한 범위 내에 있으면 해당 배열 요소 값이 출력되고, 그렇지 않으면 인덱스가 유효한 범위를 벗어났다는 메시지가 표시됩니다.
#include <iostream> using namespace std; int main() { int arr[5] = {1, 2, 3, 4, 5}; int index; cout << "请输入要访问的数组索引:"; cin >> index; try { if (index < 0 || index >= 5) { throw "索引超出有效范围!"; } cout << "数组元素值为:" << arr[index] << endl; } catch (const char* errMsg) { cout << errMsg << endl; } return 0; }
위의 예에서는 try-catch 문 블록을 사용하여 예외를 포착했습니다. 인덱스가 유효한 범위를 초과하면 사용자 정의 예외가 발생하고 catch 문 블록에서 예외를 처리합니다. 이렇게 하면 범위를 벗어난 오류가 발생하더라도 프로그램이 충돌하지 않고 정상적으로 종료될 수 있습니다.
요약:
C++ 프로그램을 작성할 때 우리는 항상 범위를 벗어난 배열 오류 문제에 주의를 기울여야 합니다. 조건 확인을 수행하고 예외 처리 메커니즘을 사용하면 범위를 벗어난 오류를 효과적으로 방지하고 해결할 수 있습니다. 동시에, 좋은 프로그래밍 습관과 사양은 그러한 오류의 가능성을 줄이는 데 도움이 될 수도 있습니다.
위 내용은 C++ 런타임 오류: '범위를 벗어난 예외'를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!