我有一个快速函数func hexStrToBytes(input: String) throws -> [UInt8]
将HEX字符串转换为Uint8数组,当输入格式不正确时,可能需要抛出异常。
但我无法自行验证其格式,而是使用bytes.append(UInt8(str,radix: 16)!)
。如果此函数成功执行,那么我的函数可以返回正确的值。如果这个bytes.append(UInt8(str,radix: 16)!)
有问题,我需要抛出异常。但我怎么知道它错了?这个程序可能只是粉碎,我甚至没有机会抛出异常。
答案 0 :(得分:1)
此代码段应该接近您要查找的内容。它使用可选绑定来检查字符串是否可转换,如果不是则抛出错误。
if let theByte = UInt8(str, radix: 16) {
bytes.append(theByte)
} else {
throw MyError()
}
请注意,Swift不使用术语“例外”来描述其错误处理机制。虽然throw / catch控制流程类似,但它们的实现方式与其他语言中的异常不同。