iOSアプリ開発をする時にやっておきたい例外対応

main.m のmain関数を以下のようにしてから開発を始めると、

例外時にコールスタックをざっくり見られるので何かとデバッグが捗る。

突然 SIG_ABRT するも、どこで止まったかわからないみたいな事で迷う事も減る。

( iOS6で動作確認 )
int main(int argc, char *argv[]) {

#ifdef DEBUG

 int ret;

 @autoreleasepool {

  @try {
  
   ret = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  
  }

  @catch (NSException *exception) {

   NSLog( @"%@", [exception callStackSymbols] );
   @throw exception;
  
  }

 }

 return ret;

#else

 @autoreleasepool {

  return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

 }

#endif

}