Как выйти из основной процедуры с кодом ошибки в Аде? - PullRequest
0 голосов
/ 14 апреля 2020

Это кажется таким простым, но это не компилируется:

procedure Main is
begin
   exit 1;
end Main;

При компиляции с помощью gprbuild выдает:

Compile
   [Ada]          main.adb
main.adb:3:04: cannot exit from program unit or accept statement
main.adb:3:08: missing ";"
gprbuild: *** compilation phase failed

Ключевое слово exit в Ada явно не выполняет то, что оно делает делает на других языках программирования. Так как же выйти из основной процедуры ada с кодом ошибки?

Ответы [ 2 ]

4 голосов
/ 14 апреля 2020

Как насчет:

with Ada.Command_Line;

procedure Main is
begin
   Ada.Command_Line.Set_Exit_Status(Ada.Command_Line.Failure);
end Main;
0 голосов
/ 14 апреля 2020

Сделайте вашу главную программу Ada функцией, а не процедурой, и верните желаемый код выхода:

function Main return integer is
begin
   return 1;
end Main;
...