gpt4 book ai didi

swift - 我如何捕获并记录所有错误?

转载 作者:行者123 更新时间:2023-11-28 08:57:01 24 4
gpt4 key购买 nike

我正在使用一些第三方函数,但我不知道它们会产生什么类型的错误。

我想捕获并记录所有此类错误,但 ErrorType 协议(protocol)没有任何成员可以提供有意义的消息或错误代码。如何正确记录任何类型的错误?

do {
try someFunction()
} catch WellKnownError { // handle it }
} catch let err {
let message = ... // how can I get error type and some meaningful message from err?
NSLog(message)
}

最佳答案

我认为这不是一个选择...

但是你可以试试这样的……

//----------------------------------------
// Private API
//----------------------------------------

public enum CarError : ErrorType
{
case NeverTurnOn
case OutOfFuel
case Other(String)
}

public class Car
{

public func turnOn(newState:Int) throws -> Bool
{

if newState == 1
{
throw CarError.NeverTurnOn
}
else if case 2...5 = newState
{
throw CarError.OutOfFuel
}
else if newState == 10
{
throw CarError.Other("Something is gonna wrong")
}
else if newState == 11
{
throw CarError.Other(":(")
}

return false
}

}

错误处理

func main()
{

let car = Car()

do {
try car.turnOn(4)
} catch CarError.NeverTurnOn {
print("Turn off")
} catch let err as NSError {
print(err.description)
} catch {
print("It's madness!!!")
}

}

main()

通过这个测试...我得到了这个结果...

//Error Domain=trycatchtest.CarError Code=1 "The operation couldn’t be completed. (trycatchtest.CarError error 1.)"
//Program ended with exit code: 0

这不是解决您的问题的最佳方法,而是一种了解此框架背景中发生的事情的新方法。

现在,请帮个忙。

现在请让我谈谈最终结果;)

结果是好是坏并不重要。

关于swift - 我如何捕获并记录所有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32791835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com