首页 > 解决方案 > 创建任务错误和存储错误的简单示例

问题描述

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

标签: ada

解决方案


我希望您对这两个错误的不同程序感到满意?

对于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;

这引发了异常,因为当主程序调用时T.E,那里根本没有任务。要探索这一点,请将其替换为null;eg delay 5.0;- 程序在异常终止之前等待 5 秒。


推荐阅读