如何使 Ada 异常在模块外可见?

How can I make an Ada Exception visible outside a module?

我不明白为什么我会收到有关此 Ada 异常的错误。对于以下示例,我收到此错误:

看来我需要在 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 =>

?