swift - 当抛出一个可选的-nil错误时,如何获得默认的错误字符串?

标签 swift error-handling

我们正在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/

相关文章:

ios - 展开 UITableViewCell 以在选择时显示附加文本标签

JavaScript:如何处理除错误输入之外的所有错误

c# - 无法连接kafka集群时无异常

php - 由于用户错误而呈现错误的网页

ios - 重力场不起作用,物体在真空中漂浮

ios - 动态 UIViewCell 垂直单元格滚动与水平 UICollectionViewFlowLayout

ios - 获取错误线程 1 : EXC_BAD_ACCESS (code=EXC_I386_GPFLT) when loading AVPlayer

Swift:无法在循环内解包可选

ruby-on-rails - 如果表单错误,带有jQuery选择字段的简单表单将无法正常工作

c++ - 如何在 ADO 中读取 NULL 值