Swift:在'try'表达式中没有调用抛出函数

时间:2016-11-18 23:26:34

标签: swift string try-catch

我正在尝试进程字符串并设置“try”

var str = String()
do{
    let str = try self.processMyString(strToProcess)

}catch{

}

但是我收到了这个错误:

no calls to throwing functions occur within 'try' expression

你们中的任何人都知道这个错误的原因或我该如何解决?

我真的很感谢你的帮助。

2 个答案:

答案 0 :(得分:4)

如果您的功能可能导致错误,请按照

进行定义
func canThrowErrors() throws -> String 

喜欢找到here

然后你就可以像尝试一样使用这个尝试。

答案 1 :(得分:1)

processMyString没有throw,因此没有理由将其作为do / catch块中的一个。

此外,您声明了一个名为let的本地str常量,它隐藏了您可能不想要的名为var的外部str变量。< / p>

这样做:

let str = self.processMyString(strToProcess)