如何在swift中处理运行时错误?

时间:2015-04-01 08:31:47

标签: swift

我不知道如何在swift中处理运行时错误。我需要检查解析错误并对其执行某些操作。有人可以帮帮我吗?

我的代码是这样的:

var:SomeObject = parse("some string")

我需要处理运行时发生的任何一般错误。 谢谢!

2 个答案:

答案 0 :(得分:0)

如果函数是你的,那么在失败的情况下,你可以使该函数返回一个nil值。

这样你的代码行

var anObj:SomeObject = parse("some string")

会变成这样的东西

var:SomeObject? = parse("some string")

注意?标志。这意味着它中的值是Optional。简单来说,它可能是一些实际值,或者它可能是零。 完成此功能后,您应该执行类似

的检查
If anObj != nil
{
//do something
}
else
{
//the parse didn't go right, handle the erorr here.
}

答案 1 :(得分:0)

Swift 2为您的错误检查增加了额外的安全性。您可以使用 throws 关键字指定哪些函数和方法可能会引发错误。然后,当您调用可能抛出的内容时,您有执行尝试捕获关键字:

// 1
enum ParseError: ErrorType {
  case InvalidValue
}

// 2
func parseWithError(value:String) throws {
  if value.count > 0 {
    // yeaaa!
  } else {
    // 3
    throw ParseError.InvalidValue
  }
}

func parse(value:String) {
  // 4
  do {
    try parseWithError(value)
  } catch {
    print("Could not parse! :[")
    return
  }
}

这里有几点要强调:

  1. 要创建要抛出的错误,只需创建一个派生自ErrorType的枚举。
  2. 您需要使用throws关键字来标记任何可能引发错误的函数。
  3. 这会引发错误,该错误将在第4节中找到。
  4. 您可以将任何可能在do块中抛出错误的代码包装起来,而不是其他语言可能熟悉的try块。然后,将try关键字添加到可能引发错误的每个函数调用中。
  5. 更多阅读here或这是Error Handling

    的官方文档