C++ Try-Catch-Finally

C Try Catch Finally



C++에서는 예외 처리를 위한 'try-catch' 메서드를 제공합니다. C++ 프로그램에서 예외가 발생하면 이러한 'try-catch' 메서드는 프로그램 코드의 한 부분에서 다른 부분으로 제어를 이동하는 데 도움이 됩니다. 예외는 프로그램이 실행되는 동안 나타나는 결함입니다. 프로그램이 실행되는 동안 0으로 나누려는 등의 특별한 상황이 발생하면 C++ 예외가 발생하고 코드에서 'try-catch' 메서드를 간단히 활용하여 이 상황을 처리합니다. 여기에는 'try', 'catch' 및 'throw'라는 세 가지 키워드가 포함되어 있습니다. 'throw' 키워드는 다른 코드 부분에서 예외를 발생시키는 데 사용됩니다. C++ 프로그래밍에서는 'finally' 키워드를 사용하는 것이 쉽지 않지만 C++ 코드에서는 'try', 'catch' 및 'throw' 키워드를 사용할 수 있습니다.

예시 1:

여기에는 여러 함수가 선언된 헤더 파일인 'iostream'이 포함되어 있습니다. 우리는 코드에서 이 헤더 파일에 선언된 이러한 함수를 사용하므로 이 헤더 파일을 포함합니다. 그 다음에는 'cin' 및 'cout'과 같은 함수도 정의되어 있으므로 여기에 배치된 'std'가 있습니다. 코드 시작 부분에 'namespace std'를 추가하면 이러한 모든 기능에 'std'를 입력할 필요가 없습니다. 그런 다음 C++ 프로그램의 드라이버 코드라고도 하는 'main()' 함수가 호출됩니다.

그런 다음 여기서는 'my_num1'을 '35' 값으로 초기화하는 'try' 키워드를 활용합니다. 여기서는 'int' 데이터 유형 변수입니다. 이제 이 변수를 “if” 안에 넣고 “my_num1”이 “98”보다 크거나 같아야 한다는 조건을 넣습니다. 주어진 조건이 만족되면 “if” 내부로 이동하여 여기에 적힌 문장을 실행합니다. “cout”을 활용하여 조건이 만족되었을 때 표시할 메시지를 삽입합니다.







그런 다음 'else'를 배치한 후 'throw' 키워드를 사용합니다. 이 'throw' 키워드에서는 'my_num1'을 매개변수로 전달합니다. 이 아래에 'catch' 부분을 추가합니다. “catch()”의 매개변수로 “my_num2”를 삽입한 다음 이 “catch” 부분 안에 “cout”을 다시 사용합니다. 이 부분은 “try” 부분에서 예외가 발생한 경우에만 실행됩니다.



코드 1:



#include
사용하여 네임스페이스 성병 ;
정수 기본 ( ) {
노력하다 {
정수 내_번호1 = 35 ;
만약에 ( 내_번호1 >= 98 ) {
시합 << '여기서 접근 권한이 부여되었습니다.' ;
} 또 다른 {
던지다 ( 내_번호1 ) ;
}
}
잡다 ( 정수 내_번호2 ) {
시합 << '여기서는 접근이 거부되었습니다.' << ;
시합 << '번호는 다음과 같습니다: ' << 내_번호2 ;
}
반품 0 ;
}

산출:
우리가 입력한 숫자는 '98'보다 작은 '35'입니다. 그래서 거기에서 예외가 발생하고 “catch()” 부분이 표시됩니다. 'try' 부분에 대한 접근이 거부되었습니다.





예 2:

여기에 'iostream' 헤더 파일과 'namespace std'를 배치합니다. 그런 다음 'int' 데이터 유형의 '분자'와 '분모'인 두 개의 매개 변수를 배치하는 'division()' 함수를 만듭니다. 이 '나누기' 함수의 데이터 유형을 'double'로 설정했습니다.



그 아래에는 분모가 0이라는 조건을 추가하는 'if()'를 추가합니다. 그런 다음 'throw' 키워드를 사용하고 거기에 메시지를 입력합니다. 이 메시지는 조건에 따라 이 코드에서 예외가 발생할 때마다 렌더링됩니다. 그 아래에는 '분자/분모'를 배치하는 'return' 키워드를 활용합니다. 따라서 나눗셈의 결과를 반환합니다. 이제 “main()” 함수가 호출됩니다.

이후에는 'num1'과 'num2'가 'int' 변수로 초기화되고 각각 '89'와 '0'이 할당됩니다. 그런 다음 'double' 데이터 유형의 '결과'를 초기화합니다. 여기서는 try 키워드를 활용합니다. 이 부분에서는 이 'result' 변수를 추가하고 이 변수에 'division()' 함수를 할당합니다. 이 함수에 'num1'과 'num2'라는 두 개의 매개변수를 전달합니다. 아래에는 'division()' 함수를 적용한 후 얻은 '결과'가 표시됩니다. 그런 다음 'catch'를 활용하고 'const char* msg'를 배치하여 이전에 추가한 메시지를 표시합니다.

코드 2:

#include
사용하여 네임스페이스 성병 ;
더블 분할 ( 정수 분자, 정수 분모 ) {
만약에 ( 분모 == 0 ) {
던지다 '여기서는 0으로 나누는 것이 불가능해요!' ;
}
반품 ( 분자 / 분모 ) ;
}
정수 기본 ( ) {
정수 숫자1 = 89 ;
정수 숫자 2 = 0 ;
더블 결과 = 0 ;
노력하다 {
결과 = 분할 ( 숫자1, 숫자2 ) ;
시합 << 결과 << ;
} 잡다 ( const * 메시지 ) {
세르 << 메시지 << ;
}
반품 0 ;
}

산출:
이전에 분모로 삽입한 숫자는 '0'입니다. 따라서 코드에서 예외가 발생하고 해당 메시지가 표시됩니다.

예시 3:

여기서는 'int' 데이터 유형의 매개변수로 'value'와 'multiplier'를 배치하는 'multiplication()' 함수가 생성됩니다. 그런 다음 0과 동일한 승수 조건을 추가하는 'if'를 활용합니다. 그런 다음 문을 추가하는 곳에 'throw'가 배치됩니다. 그런 다음 이전에 선언한 'value * multiplier' 변수를 배치하는 'return'이 있습니다. 따라서 여기에 곱셈 결과가 반환됩니다.

그런 다음 'int value1'과 'int value2'를 각각 '34'와 '0'의 값으로 선언하는 'main()'을 호출합니다. 여기서는 'int m_res'도 선언된 다음 'multiplication()' 함수를 호출합니다. 이 기능을 수행한 후 결과는 이제 'm_res' 변수에 저장되어 표시됩니다. 그런 다음 'catch' 기능을 사용하고 'const char* msg'를 삽입하여 이전에 'throw' 부분에 추가한 메시지를 표시합니다.

코드 3:

#include
사용하여 네임스페이스 성병 ;
더블 곱셈 ( 정수 값 , 정수 승수 ) {
만약에 ( 승수 == 0 ) {
던지다 '우리는 그 값에 0을 곱하지 않습니다!' ;
}
반품 ( * 승수 ) ;
}
정수 기본 ( ) {
정수 값1 = 3. 4 ;
정수 값2 = 0 ;
정수 m_res ;
노력하다 {
m_res = 곱셈 ( 값1, 값2 ) ;
시합 << m_res << ;
} 잡다 ( const * 메시지 ) {
세르 << 메시지 << ;
}
반품 0 ;
}

산출 :
이전에 입력한 값의 승수는 '0'이므로 코드에는 여기에 알림이 표시되는 예외가 있습니다.

예시 4:

여기서는 'multiply()' 함수를 작성하고 'int' 데이터 유형의 매개변수로 'number1'과 'number2'를 전달합니다. 다음으로, 'if' 연산자를 사용하여 0보다 작거나 같은 승수인 조건을 추가합니다. 그 후 'throw'가 있어야 할 곳에 명령문이 추가됩니다. 그런 다음 곱셈 결과는 이전에 선언한 'number1 * number2' 변수를 삽입하는 'return' 섹션에 반환됩니다.

그런 다음 'main()' 함수를 호출하고 '34' 및 '12' 값을 각각 'int newNumber1' 및 'int newNumber2'에 할당합니다. 여기서는 'int mResult' 선언 이후에 'multiply()' 함수가 호출됩니다. 이제 이 함수의 결과는 'mResult' 변수에 저장되고 다음과 같이 렌더링됩니다. 그런 다음 'catch' 기능을 사용하고 'const char* msg'를 추가하여 'throw' 섹션에서 작성한 메시지를 표시합니다.

코드 4:

#include
사용하여 네임스페이스 성병 ;
더블 곱하다 ( 정수 번호 1, 정수 2 번 ) {
만약에 ( 2 번 <= 0 ) {
던지다 '우리는 그 값에 0이나 음수 값을 곱하지 않습니다!' ;
}
반품 ( 번호 1 * 2 번 ) ;
}
정수 기본 ( ) {
정수 새로운 숫자 1 = 3. 4 ;
정수 새로운Num2 = 12 ;
정수 mResult ;
노력하다 {
mResult = 곱하다 ( 새로운 Num1, 새로운 Num2 ) ;
시합 << '곱셈의 결과는 ' << mResult << ;
}
잡다 ( const * 메시지 ) {
세르 << 메시지 << ;
}
반품 0 ;
}

산출:
우리가 추가하는 값은 조건을 추가하는 '12'입니다. 따라서 조건이 참이 아니므로 “multiply()” 함수가 수행됩니다. 곱셈의 결과가 표시됩니다. 여기서는 'try' 부분이 실행됩니다.

결론

이 가이드의 'try-catch' 개념과 코드에 대해 자세히 연구합니다. 우리는 이 'try-catch' 개념을 철저히 조사하고 이것이 C++ 프로그래밍에서 어떻게 작동하는지 보여주었습니다. 우리는 고유한 코드를 작성할 수 있는 오류가 발견되면 'throw' 용어가 예외를 생성한다고 정의했습니다. 'catch' 표현식을 사용하면 'try' 부분에 예외가 나타날 경우 실행할 코드 블록을 지정할 수 있습니다.