不抛出方法的 Swift 错误处理

标签 swift error-handling do-catch

<分区>

如何处理未明确抛出的方法或代码的错误?

将其包装在 do/catch block 中会导致编译器警告:

"'catch' block is unreachable because no errors are thrown in 'do' block"

来自 C#/JAVA 背景,这至少可以说是一个奇怪的事情。作为一名开发人员,我应该能够保护和包装 do/catch block 中的任何代码块。仅仅因为一个方法没有明确标记为“throw”并不意味着不会发生错误。

最佳答案

您所问的问题在 Swift 中是不可能的,因为 Swift 没有处理运行时错误的工具,例如越界、访问冲突或在运行时强制解包失败。如果发生任何这些严重的编程错误,您的应用程序将终止。

一些提示:

长话短说:不要在 Swift 中简化错误处理。始终安全行事。

解决方法:如果您绝对必须捕获运行时错误,则必须使用进程边界来保护。 Run another program/process并使用管道、套接字等进行通信。

关于不抛出方法的 Swift 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41994538/

相关文章:

ios - 为什么我的 CGImage 在 setNeedsDisplay 后不能正确显示

ios - tableView.dequeueReusableCellWithIdentifier() 导致应用挂起

json - 在 Swift 上访问变量 do-catch 语句

crash - 应用因空值而崩溃, swift 2

swift - NSError 和 Swift 中的错误

ios - 如何将 Swift 中的 Core Data 与 Cloudkit 以及在许多设备上同步

ios - UIScreenEdgePanGestureRecognizer 多次触发

tsql - 即使sybase中发生异常,如何继续执行while循环的其余部分?

c# - 出错时转到 ErrHand(C#)

Java:自定义异常错误