<分区>
如何处理未明确抛出的方法或代码的错误?
将其包装在 do/catch block 中会导致编译器警告:
"'catch' block is unreachable because no errors are thrown in 'do' block"
来自 C#/JAVA 背景,这至少可以说是一个奇怪的事情。作为一名开发人员,我应该能够保护和包装 do/catch block 中的任何代码块。仅仅因为一个方法没有明确标记为“throw”并不意味着不会发生错误。
<分区>
如何处理未明确抛出的方法或代码的错误?
将其包装在 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/