Mengapa @try coba blokir tidak berfungsi? Itu crash aplikasi, tapi itu seharusnya ditangkap oleh blok @try.
NSString* test = [NSString stringWithString:@"ss"];
@try {
[test characterAtIndex:6];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
iphone
objective-c
try-catch-finally
nsexception
Alexandru Circus
sumber
sumber
Jawaban:
Semua bekerja dengan sempurna :)
Catatan:
sumber
Sekarang saya sudah menemukan masalahnya.
Menghapus
obj_exception_throw
dari breakpoint saya memecahkan masalah ini. Sekarang tertangkap oleh@try
blok dan juga,NSSetUncaughtExceptionHandler
akan menangani ini jika ada@try
blok yang hilang.sumber
Objective-C bukan Java. Dalam Objective-C pengecualian adalah apa yang disebut. Pengecualian! Jangan menggunakannya untuk penanganan kesalahan. Itu bukan proposal mereka. Cukup periksa panjang string sebelum menggunakan characterAtIndex dan semuanya baik-baik saja ....
sumber