如何帮助F#编译器解释重新抛出异常没有返回值?
例如,考虑包装操作以记录异常:
let doDivision() =
try
2 / 0
with ex ->
log ex
reraise
编译器报告reraise
的错误:
此表达式应为
int
类型,但此处的类型为unit -> 'a
答案 0 :(得分:7)
“reraise”是一个功能。你需要将单位传递给它。
let doDivision() =
try
2 / 0
with ex ->
log ex
reraise ()