0

在 .Net 中,开发过程中的常见做法是逐步实现接口,因此在前几轮开发中并非所有接口功能都实现。这样的示例在 C# 中如下所示:

public string FutureGetString()
{
    // Not developed yet.
    throw new NotImplementedException();
}

但是,我还没有想出如何在 Ada 中做同样的事情。我想开发一个包规范的主体,同时对一些功能敞开大门。有没有办法立即抛出异常?现在,我有以下内容,这给了我一个编译器错误missing "return" statement in function body

function NotImplemented ( Input : Integer ) return Boolean is
begin
   raise Program_Error;
end;
4

2 回答 2

5

我看过这个推荐(由高级 AdaCore 工程师):

function NotImplemented ( Input : Integer ) return Boolean is
begin
   raise Program_Error;
   return NotImplemented (Input);
end;

我想知道编译器是否会警告无限递归,但没有。

于 2017-11-27T22:07:41.750 回答
4
function Not_Implemented (Input : in Integer) return Boolean is
   pragma Unreferenced (Input);
begin
   pragma Compile_Time_Warning (True, "Not_Implemented has not been implemented yet.");
   return raise Program_Error with "Not_Implemented has not been implemented yet.";
end Not_Implemented;
于 2017-11-27T20:06:45.707 回答