如何使 Ada 异常在模块外可见?
How can I make an Ada Exception visible outside a module?
我不明白为什么我会收到有关此 Ada 异常的错误。对于以下示例,我收到此错误:
- 生成器结果:
"Send_Command_Failed" is not visible (more references follow) 1085:12
看来我需要在 sample_client.ads 中声明异常,然后代码会编译,但我发现这种方法是非模块化的并且违反直觉。所以问题真的是我怎样才能做到这一点“right”并从 command_interface 模块导出。
示例客户如...
-- sample_client.adb --
:
with command_interface;
:
package body sample_client is
procedure example is
begin
: ... stuff
exception
when Send_Command_Failed =>
Trace_Error( "Send Exception: Send_Command_Failed at example");
raise;
end example;
end sample_client;
此处为图书馆界面:
-- command_interface.ads --
package command_interface
:
exception Send_Command_Failed;
:
end command_interface;
Body 中的一些代码可以抛出 Send_Command_Failed 异常 ...
-- command_interface.adb --
package body command_interface
: ... code raises: Send_Command_Failed
:
end Command_Interface; -- specification
package body command_interface
: ... code raises: Send_Command_Failed
:
end Command_Interface; -- specification
你试过告诉编译器在哪里可以找到异常声明吗?
exception
when command_interface.Send_Command_Failed =>
?
我不明白为什么我会收到有关此 Ada 异常的错误。对于以下示例,我收到此错误:
- 生成器结果:
"Send_Command_Failed" is not visible (more references follow) 1085:12
看来我需要在 sample_client.ads 中声明异常,然后代码会编译,但我发现这种方法是非模块化的并且违反直觉。所以问题真的是我怎样才能做到这一点“right”并从 command_interface 模块导出。
示例客户如...
-- sample_client.adb --
:
with command_interface;
:
package body sample_client is
procedure example is
begin
: ... stuff
exception
when Send_Command_Failed =>
Trace_Error( "Send Exception: Send_Command_Failed at example");
raise;
end example;
end sample_client;
此处为图书馆界面:
-- command_interface.ads --
package command_interface
:
exception Send_Command_Failed;
:
end command_interface;
Body 中的一些代码可以抛出 Send_Command_Failed 异常 ...
-- command_interface.adb --
package body command_interface
: ... code raises: Send_Command_Failed
:
end Command_Interface; -- specification
package body command_interface
: ... code raises: Send_Command_Failed
:
end Command_Interface; -- specification
你试过告诉编译器在哪里可以找到异常声明吗?
exception
when command_interface.Send_Command_Failed =>
?