我们正在Optionals上实现我们自己的.required()
方法版本,在这里,您不仅可以简单地强制展开引发错误,还可以获取发生攻击的文件,函数和行号,以及开发人员提供的有关发生错误的消息错误。
消息本身是可选的,因此如果用户未指定它,我们希望我们与Swift的默认异常共享相同的消息,以强制展开nil可选。他们的默认文字是...
Unexpectedly found nil while unwrapping an Optional value
当不显示我们的自定义消息时,我们当然希望我们显示相同的文本以进行日志分析。尽管我们可以简单地对上面的字符串进行硬编码,但是我想知道是否有一种方法可以从内置错误中提取出来。像这样
let ourMsg = UnexpectedNilError.localizedDescription
但是,不确定上面的
UnexpectedNilError
会代替什么,或者甚至可能。没什么大不了的。只是想知道是否存在标准错误,我们可以在这里使用。
最佳答案
快速搜索Swift的repo之后,在文件Optional.swift line 314中找到错误消息:
_preconditionFailure(
"Unexpectedly found nil while unwrapping an Optional value",
file: StaticString(_start: _filenameStart,
utf8CodeUnitCount: _filenameLength,
isASCII: _filenameIsASCII),
line: UInt(_line))
它似乎也很硬编码,可以直接作为参数传递给
_preconditionFailure
,因此似乎无法在代码中将其作为字符串值来获取。
关于swift - 当抛出一个可选的-nil错误时,如何获得默认的错误字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59891658/