ada - 创建任务错误和存储错误的简单示例
问题描述
我需要一些简单的 Ada 代码来测试我的“系统”。为了测试它,我需要一些引发存储错误和任务错误的代码示例(我知道通常会避免它们,但我需要模拟这个问题)。我知道这似乎是一个基本要求,但我对 ada 编码有点陌生,我发现解决这些任务有点困难。我试图在互联网上搜索合适的解决方案,但都不能满足我的需要(或者太具体或错误)。我正在搜索的是创建一个带有引发这两个错误的函数/过程的.adb 。
解决方案
我希望您对这两个错误的不同程序感到满意?
对于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 秒。
推荐阅读
- python - 当用户使用Python tkinter单击列表框中的特定项目时如何打开新窗口
- oracle - 在 oracle 中创建具有值的表
- javascript - javascript异步forEach循环
- mfc - 在 MFC 中如何垂直对齐编辑框中的文本?
- javascript - 如何设置jquery ajax post数据
- bash - if-else 语句正确用法 - bash
- python - 第二个窗口pyqt5中的matplotlib
- c# - 在较大的 #if 条件块内的新行中包含 #if 的多行字符串
- angular - 未捕获的类型错误:无法读取未定义的属性“长度” - Jasmine/Karma Angualr2
- php - 如何捕获邮递员通过表单数据发送到 laravel 控制器的数据