我在我的項目中有10個類,目前我在所有10個類的每個方法中都放置了try catch塊來捕獲異常,這似乎是一個龐大的代碼。如何在iOS應用程序中維護單個try catch塊
現在我想維護一個單一的try catch塊通過項目,意味着如果任何異常發生在我應該通過try catch塊捕獲的所有10個類中。
是否有可能做這樣的... ...
NSArray *arr=[[d1 objectForKey:@"Time"] componentsSeparatedByString:@" "];
NSArray *arr1=[[arr objectAtIndex:1] componentsSeparatedByString:@":"];
這裏我的目標「時間」是從服務的到來。 所以如果對象爲空,可能會導致 數組超出索引Exception。 我知道我可以通過比較字符串的長度來解決。所以,如果在某些情況下忘記比較長度。 在這種情況下,我想捕捉異常,我想將其發佈到我的服務器。
@catch (NSException *exception) {
NSString *stacktrace=[exception.reason stringByReplacingOccurrencesOfString:@"<" withString:@""];
stacktrace=[stacktrace stringByReplacingOccurrencesOfString:@">" withString:@""];
// NSString *strClass = NSStringFromClass([self class]);
NSString *strClass = [NSString stringWithFormat:@"%@ : %@",NSStringFromClass([self class]), NSStringFromSelector(_cmd)];
Item* myStore = [Item sharedStore];
myStore.strErrorDescription=exception.name;
myStore.strErrorStack=stacktrace;
myStore.strErrorPageName=strClass;
[myStore PostError];// To Post the exception to My server.
ErrorView *errorView=[[ErrorView alloc]initWithNibName:@"ErrorView" bundle:nil]; [self presentViewController: errorView animated:NO completion:nil];
}
謝謝。
你確定你正在使用try-catch塊嗎?它們用於iOS編程,但很少,我仍然沒有在Objective-C中編寫過一個。 – DBoyer 2014-10-29 05:30:29
你可以做到這一點,但如果你只是調試代碼,你可能只想打開一個異常斷點。 – 2014-10-29 05:33:29
@DBoyer謝謝reply.is,這不是使用try catch塊的好方法 – siva 2014-10-29 05:33:36