如何获取捕获错误的堆栈跟踪?

时间:2017-03-30 11:26:56

标签: swift xcode error-handling

当我的应用程序启动时,我会执行以下操作:

do {
    try complexStartUpRoutine()
} catch let error {
    fatalError("Failed to launch: \(error)")
}

函数complexStartUpRoutine包含许多可以在不被捕获的情况下抛出错误的地方,此外,还会抛出并捕获许多错误,这是完全可以的。只有未被捕获的错误才会导致致命错误。

有时在开发过程中,我可能会引入错误或错误地修改导致complexStartUpRoutine错误的资产,并且在调用{{1}时将错误的内容打印到控制台}}

不幸的是,抛出的错误通常可能发生在任何地方,并且它本身并没有真正帮助我追踪它发生的位置。我真正想要的是在抛出错误时的堆栈跟踪,但我不确定如何获取它:

  • 打破所有Swift错误并没有多大帮助,因为fatalError内有许多有效的尝试/捕获,我想忽略它们。只有导致complexStartUpRoutine抛出问题的错误。
  • 仅在complexStartUpRoutine中报告的特定错误(通过设置'类型'' Swift错误'断点)仅有轻微帮助,因为作为复杂功能的一部分,可能会抛出相同的错误并捕获数百次。此外,无论如何,我只有少量的运气让断点以这种方式工作。

有没有一种方法可以让Xcode在错误被抛出的时刻中断,但是没有被fatalError捕获?

0 个答案:

没有答案