我在其他线程中读过,例如this,只有在真正特殊的情况下,才应该在c ++之类的语言中引发异常,因为编译器会尽力而为。在非例外情况下,代码将尽可能快地运行,然后通过拥有昂贵的例外情况来为此速度付出代价。这在Swift中也会发生吗?
迅速的开发人员似乎通常都可以抛出异常,我想知道是否应该避免使用do-try-catch
模式。
答案 0 :(得分:3)
答案 1 :(得分:3)
在Swift中将throw
和catch
视为goto
或jump
的安全,受控形式。它是安全且受控制的,因为编译器会发现除非有其他人要抓住,否则您将无法抛出该异常。因此,在编译时完全知道什么情况下会发生什么。
这与Objc异常完全不同,后者事先一无所知,在运行时,我们只是盲目地在每个步骤进行自省,并最终导致崩溃。