C++에서 예외를 쉽게 처리하는 방법

C Eseo Ye Oeleul Swibge Cheolihaneun Bangbeob



프로그램이 실행되는 동안 발생하는 예기치 않은 이벤트를 예외 또는 오류라고 합니다. 예외는 런타임 중에 발생하고 컴파일 중에는 포착할 수 없으므로 프로그램에 심각한 문제를 일으킬 수 있습니다. C++ 프로그램에서 예외를 잘 처리하는 것은 프로그래머가 원하는 결과를 얻는 주요 목표입니다.

C++에서 예외를 쉽게 처리하는 방법

C++의 예외 처리는 유효하지 않은 입력 처리, 나누기 연산에서 숫자를 0으로 나누는 등 런타임 오류를 감지하고 효율적으로 처리하는 메커니즘을 나타냅니다.

C++의 예외 처리에는 try, throw 및 catch라는 세 가지 키워드가 포함됩니다. try 문을 사용하면 사용자는 코드에서 예외를 발생시킬 수 있는 코드 블록을 정의할 수 있습니다. try 키워드 아래의 블록을 확인한 후 throw 키워드가 감지되면 예외가 발생합니다. catch 키워드에는 try 블록에서 관찰된 예외를 처리할 수 있는 코드 블록이 포함되어 있습니다.







예제 1: 나누기 중 예외 처리

나누는 동안 예외를 확인하기 위해 코드가 작성되었습니다.



#include
사용하여 네임스페이스 성병 ;

정수 기본 ( ) {

더블 분자, 분모, 나눗셈 ;

시합 << '분자 값을 입력하세요: ' ;
식사 >> 분자 ;

시합 <> 분모 ;

노력하다 {


만약에 ( 분모 == 0 )
던지다 0 ;


분할 = 분자 / 분모 ;
시합 << 분자 << '/' << 분모 << ' = ' << 분할 << ;
}

잡다 ( 정수 num_Exception ) {
시합 << '오류! 제수는  일 수 없습니다.' << num_Exception << ;
}

반품 0 ;
}

이 프로그램에서는 사용자가 main() 섹션에 선언된 분자와 분모의 값을 입력합니다. try 블록에서는 if 문을 사용하여 분모가 0인지 아닌지 예외를 확인합니다. 분모가 0인 것으로 확인되면 0 제수로 나눗셈을 수행할 수 없으므로 예외가 발생하고 catch 블록은 단순 나눗셈 연산이 수행되지 않으면 오류 인수를 반환합니다.







사용자가 분자 42와 분모에 0을 입력하면 예외가 발생하므로 프로그램은 오류 인수를 반환합니다.



사용자가 분자 42와 분모 2를 입력하면 예외가 발견되지 않으므로 나눗셈 후의 결과가 반환됩니다.

예제 2 연령 확인을 위한 예외 처리

이 프로그램은 사용자 연령의 예외를 확인합니다.

#include
사용하여 네임스페이스 성병 ;

/*
여기서는 해당 사람의 나이가 18세 미만인 경우 예외(age as 예외)를 발생시키려고 합니다.
*/

정수 기본 ( )
{
// try 블록에서 나이가 18세 이상인지 확인합니다.
노력하다
{
정수 나이 ;
시합 << '액세스하려면 나이를 입력하세요: ' ;
식사 >> 나이 ;

만약에 ( 나이 >= 18 )
{
시합 << '접근 권한이 부여되었습니다.' ;
}
// 연령이 18세 미만인 경우 사용자 정의 예외가 발생합니다.
또 다른
{
던지다 ( 나이 ) ;
}
}
// 던져진 예외를 포착하고 원하는 출력을 표시합니다(액세스가 거부되었습니다!)
잡다 ( 정수 엑스 )
{
시합 << '접근이 거부되었습니다! 귀하는 미성년자입니다.' << ;
}
반품 0 ;
}

이 프로그램에서는 정수 값을 갖는 변수가 정의됩니다. 사용자에게 나이를 입력하라는 메시지가 표시되고 사용자의 나이가 18세 이상인지 블록 검사를 시도합니다. 이것이 사실이 아닌 경우 예외가 발생하고 예외 블록은 액세스 거부됨을 반환합니다! 논쟁. 그렇지 않으면 액세스가 허용됩니다.

사용자는 접근 권한 확인을 위해 연령을 12세로 입력했는데, 이 연령은 18세 미만이므로 접근 거부 인수가 반환됩니다.

사용자는 18세 이상인 20세를 입력하므로 해당 사용자에게 액세스 권한이 부여됩니다.

메모 : 프로그램에 catch 블록이 없으면 프로그램이 비정상적으로 동작하고 예외가 발생하면 예기치 않게 종료됩니다.

결론

C++의 예외 처리는 런타임 오류를 감지하고 이를 효율적으로 처리하는 메커니즘을 나타냅니다. 여기에는 try, throw 및 catch 세 가지 키워드가 포함됩니다. try 블록의 코드에 대해 예외가 확인되고, throw 키워드가 발견되면 예외를 발생시키며, catch 블록은 try 블록에 대해 발생한 예외를 처리합니다. 예외를 처리하면 런타임 오류를 방지하여 사용자 경험을 원활하고 훌륭하게 만들 수 있습니다.