투케이2K

11. (Objective-C/objc) try catch finally 에러 처리 구문을 사용해 예외 상황 확인 실시 본문

Objective-C

11. (Objective-C/objc) try catch finally 에러 처리 구문을 사용해 예외 상황 확인 실시

투케이2K 2022. 2. 22. 08:24

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[testMain 함수]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("=============================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("=============================== \n");
    printf("\n");
    
    
    /*
    // MARK: [요약 설명]
    1. try catch finally : 프로그램 구문에서 에러가 발생할 문법에 예외 처리를 실시합니다
    2. catch : exception 을 사용해 에러가 발생한 이유를 확인할 수 있습니다
    3. finally : try catch 구문 이후 무조건 수행되는 단계입니다
    */
    
    
    // [초기 변수 선언 실시]
    NSString *strData = @"hello 투케이";
    
    
    // [try catch finally 구문 선언 실시]
    @try {
        printf("\n");
        printf("=============================== \n");
        printf("[try [구문 시작]] \n");
        printf("=============================== \n");
        printf("\n");
        
        // [에러를 발생 시키키 위한 string to json 데이터 형 변환 수행]
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:strData options:NSJSONWritingPrettyPrinted error:nil];
        
        
        /* // [강제 에러 발생 리턴]
        @throw (
                [NSException
                 exceptionWithName:@"TwokException"
                 reason:@"test exception"
                 userInfo:nil]
                );
        // */
        
    } @catch (NSException *exception) {
        printf("\n");
        printf("=============================== \n");
        printf("[catch [name] :: %s] \n", exception.name.description.UTF8String);
        printf("[catch [reason] :: %s] \n", exception.reason.description.UTF8String);
        printf("=============================== \n");
        printf("\n");
        
        // 에러 발생 시 catch 문자열 삽입
        strData = @"catch";
    } @finally {
        // 최종 결과 출력 수행 실시
        printf("\n");
        printf("=============================== \n");
        printf("[finally [결과] :: %s] \n", strData.UTF8String);
        printf("=============================== \n");
        printf("\n");
    }
}
 

[결과 출력]

 

 

반응형
Comments