你怎么能标记一个致命的方法,比如`fatalError`?

时间:2018-03-17 16:00:29

标签: swift fatal-error

我们有一个特殊的日志记录功能,代表特定类型的崩溃,因此,在内部调用fatalError。但是,与fatalError不同,当我们在guard语句中使用它时,它仍然抱怨我们没有退出guard的范围。

我检查了源代码,fatalError返回-> Never,所以我尝试了,但这也不起作用。我也没有看到任何应用于它的属性可能告诉编译器'这是路的尽头'。

那么有可能拥有自己的fatalError方法吗?

func myFatalError(memberName:String = #function) -> Never {
    let message = "Failed in \(memberName)" 
    NSLog(message)
    fatalError(message)
}

1 个答案:

答案 0 :(得分:0)

正如其他人所指出的那样,这个问题在我的机器上是特别的。以下(返回“从不”)按预期工作。

func myFatalError() -> Never {
    print("Doing something fatal")
}