Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C에서 Try-Catch 오류 처리 마스터하기:실용 가이드

C에서 Try-Catch 오류 처리 마스터하기:실용 가이드

"try"와 "catch"라는 단어는 프로그램에서 코드나 데이터 문제로 인해 예외가 발생했을 때 수행할 작업을 설명합니다. 예외는 시도에서 처리됩니다. 코드 블록. Catch 블록은 try 블록에서 예외를 찾고 처리하는 데 사용됩니다. Python, C++, JavaScript를 포함한 많은 프로그래밍 언어에는 try-catch가 포함되어 있습니다. 진술.

이 문서에서는 try-catch 문이 무엇인지, 그리고 C 프로그래밍의 예제를 사용하여 이를 구현하는 방법을 보여줍니다.

Try Catch 문이란 무엇인가요?

시도 문은 예외를 생성할 수 있는 문 컬렉션을 정의합니다. 특정 종류의 예외가 발생하면 catch 블록에서 예외가 전송됩니다. 컴파일러는 오류 알림을 출력하거나 try/catch 블록이 예외를 처리하지 못하는 경우 처리될 때까지 예외가 호출 스택 위로 계속 이동합니다.

try-catch의 일반 구문 명령문은 다음과 같이 제공됩니다:

{를 시도해보세요
    /*
    오류를 생성할 수 있는 코드를 삽입하세요.
    */
}
{를 잡아라
    /*
    생성된 오류를 처리하기 위한 코드를 작성합니다.
    */
}

C의 try-catch 문이 무엇인가요?

C는 예외 처리를 지원하지 않습니다 이를 수행하는 기본 제공 메커니즘이 없습니다. 그러나 setjmp 를 사용하여 이를 어느 정도 시뮬레이션할 수 있습니다. 및 longjmp 전화. 스택을 방문한 후 메모리를 해제할 수 있는 방법이 없으면 예외 처리 메커니즘은 비효율적이고 안전하지 않으며 C에는 가비지 수집기가 없습니다. RAM을 확보하려면 컨텍스트 관리자를 통합해야 할 수도 있습니다.

이제 코드를 개선하면서 점진적으로 솔루션을 구축하겠습니다. longjmp와 setjmp는 setjmp.h 헤더 파일에서 제공할 수 있는 두 가지 C 함수입니다. setjmp 함수는 jmp_buf 유형 변수를 허용하고 직접 호출되면 0을 반환합니다. 동일한 jmp_buf 변수를 사용하여 두 개의 변수로 longjmp를 호출하면 setjmp 함수는 longjmp의 두 번째 인수 값과 일치하는 값을 반환합니다.

위 구현의 예는 다음과 같습니다:

#include
#include
#define TRY do { jmp_buf buf_state; if ( !setjmp(buf_state)) {
#CATCH 정의 } else {
#define ENDTRY }} 동안(0)
#define THROW longjmp(buf_state, 1)
정수 메인()
{
    시도해보세요 {
        printf("문장 테스트를 시도해 보세요\n");
        던지기;
        printf("THROW 블록이 이미 예외를 발생시켰으므로 명령문이 나타나서는 안 됩니다. \n");
    }
    잡기 {
        printf("예외 발생 \n");
    }
    엔드트리;
    0을 반환합니다.
}

위의 C 프로그램에서 ENDTRY 함수는 do-while 블록의 닫는 부분을 제공하는 데 사용됩니다.

C에서 Try-Catch 오류 처리 마스터하기:실용 가이드

결론

프로그램이 실행되는 동안 데이터 또는 코딩 오류로 인해 예외가 발생하는 경우 "시도 ” 및 “잡기 ” 관리 방법을 설명합니다. 시도 코드 블록, catch 중에 예외가 발생합니다. 블록은 try 의 오류가 발생하는 곳입니다. 블록을 찾아 처리합니다. 많은 프로그래밍 언어가 try-catch를 지원합니다. 블록하지만 C는 그렇지 않습니다. 이 가이드에서는 C 프로그래밍에서 try-catch 문을 사용하는 방법을 설명했습니다.

작가 소개

C에서 Try-Catch 오류 처리 마스터하기:실용 가이드

코말 바툴 바툴

저는 연구 기술과 새로운 아이디어에 열정을 갖고 있으며, 그로 인해 LinuxHint에 글을 쓰게 되었습니다. 저의 주요 관심사는 프로그래밍 언어와 컴퓨터 과학 관련 주제에 관해 글을 쓰는 것입니다.