주어진 사용자 입력이 유효하지 않은 경우 예외가 발생하는 코드를 작성하여 try/catch 블록에 넣었지만 아직 예외가 발생했습니다 . 코드 자체는 꽤 길기 때문에 여기에 예외가 발생하는 단순화 된 버전의 코드가 있습니다. 예외 자체는 분명합니다. 위치 "3"은 존재하지 않으므로 자연적으로 예외가 발생하지만 try/catch 블록 내부에 있으므로 잡히지 만 그렇지 않습니다.코드가 try/catch 블록 내에 있더라도 예외가 계속 발생합니다.
int main() {
try
{
vector<string> test = vector<string>{ "a","b","c" };
string value = test[3];
}
catch (...)
{
}
}
이 코드를 실행하면 try/catch 블록에 있는지 여부에 관계없이 다음 예외가 발생합니다.
const out_of_range&e
)을 지정하려하지만 도움이되지 않았다. 방금 동일한 예외가 발생했습니다.
int main() {
try
{
vector<string> test = vector<string>{ "a","b","c" };
string value = test[3];
}
catch (const out_of_range&e)
{
}
}
Visual Studio를 사용하고 있는데, IDE 또는 사용하는 컴파일러에서 문제가 될 수 있습니까?
Element 3 회원이 아니십니까? 대신 2를 사용하십시오. – Raindrop7
컴퓨터 시스템에는 여러 가지 유형의 예외가 있습니다. 소프트웨어, 운영 체제 또는 하드웨어 오류로 인해 발생하는 문제가 아닌 C++에서 발생하는 문제 만 잡을 수 있습니다. 당신이 [당신의 프로그램을 디버깅하는 방법을 배우는] 것과 같은 추락 (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –
* 크래시 *의 원인은 [초급 서적] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)으로 돌아가 검토해야합니다 . –