我有一个分配对象然后在最后释放它的方法。在这两者之间,该方法调用另一个可能引发异常的方法,并且该异常可能会被调用我的方法的方法捕获。如果发生这种情况,该对象将永远不会被释放(或者会吗?)。我应该如何防止这种情况发生?
最佳答案
您始终可以在调用可能抛出异常的方法之前自动释放它 - 这样您就可以确保无论是否抛出异常,它都会被释放。
如果出于某种原因这不明智,您可以在 @finally
block 中进行发布 1 :
A
@finally
block contains code that must be executed whether an exception is thrown or not.
请注意,使用不带 @catch
的 @finally
block 是可以的:
Resource *resource = [[Resource alloc] init];
@try {
[obj someMethodThatMayThrow];
}
@finally {
[resource release];
}
关于objective-c - 由于 Objective-C 中的异常,我应该如何处理可能的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081344/