Yep, a sort of... you can handle exceptions, before iOS kills the crashing app, but you can't do any async operation (probably not totally true you can use background operation with expiration handler, or in iOS7 NSURLSession), such as sending the a file to a server, but you can do at the next restart.
The idea behind that is in -applicationDidFinishLaunching to set an exception handler:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSSetUncaughtExceptionHandler(&myExcHandler);
/* your code*/
}
myExcHandler is a C callback that accept an NSException
as parameters that it will be called when an exception occurs.
void myExcHandler(NSException *exception)
{
//set something on NSUserDefault to check at next start
}
It must be said that there are plenty of crashing report lib available. Do not reinvent the wheel ;-)