Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了异常 – Swift中的运行时错误处理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我完全知道 Swift没有一个try / catch机制来捕获异常(好的,Swift 2.0现在支持它们).我也明白,许多API方法返回一个NSError,如果发生错误,将会填充一个错误对象.所以请不要指出我这个问题: Error-Handling in Swift-Language 但是这仍然不能解释如何对您自己的代码中的运行时错误做出反应,例如数组超出边界访问或强制展开无效的值为零.例如: v
我完全知道 Swift没有一个try / catch机制来捕获异常(好的,Swift 2.0现在支持它们).我也明白,许多API方法返回一个NSError,如果发生错误,将会填充一个错误对象.所以请不要指出我这个问题: Error-Handling in Swift-Language

但是这仍然不能解释如何对您自己的代码中的运行时错误做出反应,例如数组超出边界访问或强制展开无效的值为零.例如:

var test: String?
test = nil
println(test!) //oops!

要么

var arr = [0,1,2]
for i = 0...3 {
    println(arr[i]) //oops!
}

每个程序员偶尔都会犯这样的错误,应该有一种方法,至少要记录下来以备后续分析.在调试时,Xcode可以向我们展示这些内容,但是如果这种情况发生在最终用户或beta测试人员身上?在纯C中有信号处理,也可以在Objective-C中使用.在斯威夫特有这样的东西吗?在应用程序死亡之前输入的集中式回调?

更新:

我重新说一个问题:在一个大型项目中,手动检查每个循环上的上述错误和强制展开是不可行的.当运行时错误最终发生时,是否有回调像Objective C的segfault处理或NSSetUncaughtExceptionHandler将被调用,以便错误可以记录/电子邮件与崩溃的堆栈跟踪?

编辑:这个答案没有用swift 2.0更新.由于swift现在有错误处理我没有更新下面的答案.错误处理的一些方面将在将来使用swift 3.0进行更新.你可以按照这个答案 Error-Handling in Swift-Language

Swift被设为typeSafe语言.它在编译时会得到错误,而不是等待在运行时导致错误.

在第一个例子中,您使用可选.

var test: String?

首先明白可选的含义.当你指定可选的时候,你说它可能是零或没有价值.当你解开测试时,你说我知道这个值不是nil.Please打开它我确信那是你的责任看看它在哪里.如果你不确定那比你应该使用可选绑定这里.当你不确定价值总是使用,如果条件,同时打破

if let notNilTest = test {
    //use notNilTest
  }
  else{
   //handle error
  }

在第二个例子中,运行时异常处理应该是有意义的,但是如果条件具有count.so在第二个例子中可以很容易得到这个例子,作为开发人员,如果条件获得数组的数量,则应该使用它.

快速指南:

他们清楚地提到这一点,你应该照顾这些东西,使你的代码减少错误.他们提供了一些事情,我们应该知道如何使用这些东西.

大佬总结

以上是大佬教程为你收集整理的异常 – Swift中的运行时错误处理全部内容,希望文章能够帮你解决异常 – Swift中的运行时错误处理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。