如何知道完整的错误堆栈?
我想知道,如果有可能的话,可以看到一大堆被调用的函数。
我有一个功能层次结构,它具有层次结构“general” - >“非常专业”。
假设我有5级层次结构。
每个函数都有完成错误块,定义如下:
typedef (^ErrorBlock)(NSError*error)
FunctionWithManyParams:(Param1Type*)param1.... onError:(ErrorBlock)ErrorBlock;
层次结构中的每个函数都具有相同的代码部分:
onError(NSError*error){
ErrorBlock(error);
}
所以,如果我从高级别(假设n)调用函数,它将从(n-1)级别等调用函数。
如果来自 1-level 的函数有错误,它将回调到非常高级别的函数(非常专业),即调用它。
是否可以知道此通话的完整路径? (或某种技术)?
我想要完整的函数调用,所以,我需要添加这样的东西:
onError(NSError*error){
NSString*errorDescription = [self getNameOfFunction];
NSMutableDictionary * errorDictionary = [NSMutableDictionary dictionary];
NSString*previousErrorDescription = [error description];
[errorDictionary setValue:[NSString stringWithFormat:@"%@ >> %@",previousErrorDescription,errorDescription ] forKey:NSLocalizedDescriptionKey];
NSError * errorNew = [NSError errorWithDomain:vkDomain
code:errorCode
userInfo:errorDictionary
];
ErrorBlock(errorNew);
}
答案 0 :(得分:2)
也许你需要:
NSLog(@"%@",[NSThread callStackSymbols]);