创建任务错误和存储错误的简单示例

时间:2019-03-26 15:33:51

标签: ada

我需要一些简单的Ada代码来测试我的“系统”。为了对其进行测试,我需要一些代码示例,这些代码会引发存储错误任务错误(我知道通常会避免这种情况,但是我需要模拟这个问题)。我知道这似乎是一个基本要求,但是我对ada编码有点陌生,发现解决这些任务有点困难。我试图在互联网上搜索合适的解决方案,但都不能满足我的需要(或者过于具体或错误)。我要搜索的是创建一个 .adb ,其功能/过程会引发这两个错误。

1 个答案:

答案 0 :(得分:2)

我希望您对这两个错误的不同处理方法感到满意吗?

对于Storage_Error

procedure Storage is
   procedure Recursive is
   begin
      Recursive;
   end Recursive;
begin
   Recursive;
end Storage;

,对于Tasking_Error

procedure Tasking is
   task T is
      entry E;
   end T;
   task body T is
   begin
      null;
   end;
begin
   delay 0.01;
   T.E;
end Tasking;

这引起了异常,因为当主程序调用{​​{1}}时,根本没有任何任务。要对此进行探讨,请将T.E替换为例如null;-程序在异常终止之前等待5秒钟。