반응형
@try - 목표 C의 캐치 블록
왜 @try block이 작동하지 않는 거죠?앱이 크래쉬가 되었지만 @try 블록에 잡혔습니다.
NSString* test = [NSString stringWithString:@"ss"];
@try {
[test characterAtIndex:6];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
모두 완벽하게 동작:)
NSString *test = @"test";
unichar a;
int index = 5;
@try {
a = [test characterAtIndex:index];
}
@catch (NSException *exception) {
NSLog(@"%@", exception.reason);
NSLog(@"Char at index %d cannot be found", index);
NSLog(@"Max index is: %lu", [test length] - 1);
}
@finally {
NSLog(@"Finally condition");
}
로그:
[_NSCFConstString 문자 At]색인::범위 또는 인덱스가 범위를 벗어남
색인 5의 문자를 찾을 수 없습니다.
최대 인덱스: 3
최종 조건
이제 문제를 발견했어요.
의 삭제obj_exception_throw
이 문제를 해결했어요.이제 그것은 에 의해 잡힌다.@try
블록 및NSSetUncaughtExceptionHandler
이 문제는 만약@try
블록이 없습니다.
Objective-C는 Java가 아닙니다.Objective-C에서는 예외라고 부릅니다.예외!오류 처리에는 사용하지 마십시오.그들의 제안이 아닙니다.characterAt를 사용하기 전에 문자열 길이를 확인하십시오.색인 및 모든 것이 정상...
언급URL : https://stackoverflow.com/questions/3363612/try-catch-block-in-objective-c
반응형
'programing' 카테고리의 다른 글
CanExecute가 처음 호출될 때 WPF CommandParameter는 NULL입니다. (0) | 2023.04.23 |
---|---|
열 머리글 클릭 시 WPF List View/Grid View를 정렬하는 가장 좋은 방법? (0) | 2023.04.23 |
SQL에서 열을 난수로 채우려면 어떻게 해야 합니까?모든 행에서 동일한 값을 얻을 수 있습니다. (0) | 2023.04.23 |
ASP.Net 웹 응용 프로그램 추가 구성 변환이 회색으로 표시됨 (0) | 2023.04.23 |
메서드 이름과 행 번호를 출력하여 NSLog를 조건부로 비활성화하려면 어떻게 해야 합니까? (0) | 2023.04.18 |