在此之前,请原谅我对 iPhone/Objective-C 最佳实践缺乏了解;我来自 .NET/C# 背景。
虽然,我已经阅读了很多关于 iPhone 异常处理的帖子,但我仍然不清楚大多数人为生产代码做了什么。此外,我还没有找到任何具有我通常期望的错误处理的开源应用程序。以下是我的问题:
1)如果出现意外结果导致应用程序最终失败,你会抛出异常还是等待它稍后失败?例如,
if (![fileManager createDirectoryAtPath: myNewDir
withIntermediateDirectories: YES
attributes: nil
error: &myError]) {
// My app shouldn't continue. Should I raise an exception?
// Or should I just log it and then wait for it to crash later?
}
2)你验证参数吗?例如,在 C# 中,我通常会检查 null,如果需要,会抛出 ArgumentNullException。
3) 当应用程序崩溃时,崩溃信息会自动记录还是我需要设置未处理的异常处理程序?我可以在这个方法中显示一个 UIAlertView 来通知用户发生了一些不好的事情,而不是让应用程序消失吗?(如果是这样,我无法让它工作。)
4) 最后,为什么我没有看到有人实际使用@try/@catch/@finally?它在 C# 中被广泛使用,但我还没有找到使用它的开源应用程序。(也许我只是在看错误的应用程序。)