Я не могу поймать «Нет места на устройстве» при использовании функции NSFileHandle writedata

Я использовал NSFileHandle для writedata в файл.

NSFilehandle *handle = [NSFileHandle fileHandleForWritingAtPath:@"path/of/file"]; @try { [handle writedata:data]; } @catch (NSException *e) { // when exception occur, never got here NSLog(@"%@", e); } 

Поскольку мое дисковое пространство устройства заполнено, вызов writedata не будет выполнен. Но я не могу поймать исключение.

Информация о моей программе:

 2014-05-23 16:17:24.435 mytest[12919:3203] An uncaught exception was raised 2014-05-23 16:17:24.435 mytest[12919:3203] *** -[NSConcreteFileHandle writeData:]: No space left on device 2014-05-23 16:17:24.436 mytest[12919:3203] ( 0 CoreFoundation 0x00007fff8fae725c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x00007fff8cbb3e75 objc_exception_throw + 43 2 CoreFoundation 0x00007fff8fae710c +[NSException raise:format:] + 204 3 Foundation 0x00007fff93640f31 __34-[NSConcreteFileHandle writeData:]_block_invoke + 84 4 Foundation 0x00007fff93840020 __49-[_NSDispatchData enumerateByteRangesUsingBlock:]_block_invoke + 32 5 libdispatch.dylib 0x00007fff8bfc2fad _dispatch_client_callout3 + 9 6 libdispatch.dylib 0x00007fff8bfc2f28 _dispatch_data_apply + 113 7 libdispatch.dylib 0x00007fff8bfc9502 dispatch_data_apply + 31 8 Foundation 0x00007fff9383fff9 -[_NSDispatchData enumerateByteRangesUsingBlock:] + 83 9 Foundation 0x00007fff93640ed2 -[NSConcreteFileHandle writeData:] + 150 10 ZiSyncMac 0x000000010000b1eb -[TransferFile writePart:data:] + 475 

Я узнал, что writedata вызывает отправку, чтобы делать реальные записи данных в файловую систему. Поэтому я думаю, что writedata выдает исключение в GCD.

Как я обрабатываю исключение GCD в своем коде?

Давайте будем гением компьютера.