我如何知道Swift中发生了什么样的错误

我如何知道Swift中发生了什么样的错误,swift,try-catch,Swift,Try Catch,进一步到。对我来说,使用此代码时会发生错误。我想知道catch块到底发生了什么样的错误。您应该这样做,但我没有看到在 有没有办法在swift中执行此操作,或者如何查找对象抛出的异常?在“捕获”部分,您可以看到错误,因此您可以访问以下内容,而不是当前正在打印的字符串: Swift会自动为您提供一个错误对象作为catch子句的输入,因此请执行printerror以获得正确的错误消息链接答案中的错误处理非常简单bad@JoakimDanielson哇!魔术-这不应该导致编译器错误吗?就像我说的,它是给

进一步到。对我来说,使用此代码时会发生错误。我想知道catch块到底发生了什么样的错误。您应该这样做,但我没有看到在


有没有办法在swift中执行此操作,或者如何查找对象抛出的异常?

在“捕获”部分,您可以看到错误,因此您可以访问以下内容,而不是当前正在打印的字符串:


Swift会自动为您提供一个错误对象作为catch子句的输入,因此请执行printerror以获得正确的错误消息链接答案中的错误处理非常简单bad@JoakimDanielson哇!魔术-这不应该导致编译器错误吗?就像我说的,它是给你合成的,所以它存在而不需要声明与你的问题无关,但是[String:AnyObject]是Swift 3之前的字典格式。它应该是[String:Any]它可以工作!但是错误并没有在任何地方声明,所以如何声明呢?这是catch块的工作方式。它会自动为您提供抛出的错误。不要使用错误的版本或略短的版本。使用JSONSerialization和JSONDecoder进行本地化描述。你得到的不是真正的错误,而是一个无意义的泛型错误message@vadian同意编辑了我的答案
do {
    let json = try JSONSerialization.jsonObject(with: data!) as! Dictionary<String, AnyObject>
    print(json)
} catch {
    print("error") //which error?
}
do {
    let json = try JSONSerialization.jsonObject(with: data!) as! Dictionary<String, AnyObject>
    print(json)
} catch {
    print(error)
}