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