【发布时间】:2021-02-22 19:17:46
【问题描述】:
假设我有一个函数f,它应该通过调用g 返回一个attached T。但是,g 返回一个detachable T。如果g 导致无效,我想引发这样的异常:
f: T
do
if attached g as res then
Result := res
else
raise
end
end
raise
do
(create {DEVELOPER_EXCEPTION}).raise
end
在此设置中,EiffelStudio 在f 的末尾给我一个错误VEVI: Variable is not properly set. Variable: Result。
确实,f 末尾的 Result 可以为 Void,但在这种情况下执行不应到达 f 的末尾,应该引发异常。
如何重构代码以获得类似的结果?
【问题讨论】:
标签: eiffel void-safety