我们的代码库有很多方面,开发人员可以这样做:
try {
// code
} catch let error {
print("error \(error)")
}
控制台记录错误并不是非常有用,尽管做得更好,但人们仍然这样做。
我想知道的是,是否可以自动将代码添加到异常处理程序...理想情况下,在构建时注入代码。它纯粹是为了追踪,看看我们扔掉了哪些类型的错误。
(我知道一种解决方案是禁止这种事情,但我们也只是想要一般的异常处理来看看会出现什么类型的异常。)
答案 0 :(得分:1)
如果您此时不想记录错误,可以通过不捕获它来让错误冒出来。标记方法throws
,不要将其放在try
块中。然后,您只能在顶层登录(或执行其他操作)。
或者,您可以使用函数包装块:
func trylog(_ f: () throws -> Void) {
do {
try f()
} catch {
print(error)
}
}
然后在trylog
,如果你愿意,你可以做其他事情,而不是print
。
Swift try/catch
并非真正的“例外”。它们只是一个关于错误返回的特殊语法。这意味着没有花哨的运行时机制可以挂钩(它非常像每次调用return
时挂钩)。
虽然控制台日志记录不是很有帮助,因为你无法在设备上轻松访问它们,但我认为在几乎所有情况下,“只记录它”是正确的放入{{{ 1}}阻止。我很少遇到一个在移动应用程序中有更多有用的事情的情况。开发者对“只记录它”感到内疚,但如果你“做得对”,你究竟会做什么?我建议您使用功能更丰富的记录器替换catch
,这样您就可以从中获取一些价值,或至少将print
包裹在您自己的功能中,这样您可以稍后将其更换为更好的内容