在 Swift 中手动抛出异常而不是返回值
Manually throw exception instead of returning value in Swift
func head<T>(xs: [T]) -> T {
if (xs.count > 0) {
return xs.first!
} else {
NSException(name:"empty list", reason:"empty list", userInfo:nil).raise()
}
}
此代码无法编译(编译器期望每个分支都有一个 return 语句并且不将 NSException 识别为控制语句)。
如何更改我的代码以使其通过编译?
P.S。我不想将 return 值更改为 Optional
能否将 NSException 重新格式化为可以编译的格式?
试试这个问题的答案:Calling NSException.raise() in Swift
我需要fatalError("")
func head<T>(xs: [T]) -> T {
if (xs.count > 0) {
return xs.first!
} else {
fatalError("list is empty")
}
}
这段代码工作得很好。
func head<T>(xs: [T]) -> T {
if (xs.count > 0) {
return xs.first!
} else {
NSException(name:"empty list", reason:"empty list", userInfo:nil).raise()
}
}
此代码无法编译(编译器期望每个分支都有一个 return 语句并且不将 NSException 识别为控制语句)。
如何更改我的代码以使其通过编译?
P.S。我不想将 return 值更改为 Optional
能否将 NSException 重新格式化为可以编译的格式?
试试这个问题的答案:Calling NSException.raise() in Swift
我需要fatalError("")
func head<T>(xs: [T]) -> T {
if (xs.count > 0) {
return xs.first!
} else {
fatalError("list is empty")
}
}
这段代码工作得很好。