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

Exception 如何使Ada异常在模块外部可见?,exception,module,ada,Exception,Module,Ada,我不明白为什么我会在这个Ada异常上出错。我在以下示例中遇到此错误: 生成器结果:“发送命令失败”不可见(后面有更多参考)1085:12 似乎我需要在sample_client.ads中声明异常,然后代码进行编译,但我发现这种方法是非模块化的,违反直觉的。所以问题是我如何才能做到“正确”并从命令界面模块导出 示例客户端,如 ——示例\u client.adb-- : 具有命令界面; : 包体示例\u客户端为 程序示例为 开始 : ... 东西 例外 当发送命令失败时=> 跟踪_错误(“发送

我不明白为什么我会在这个Ada异常上出错。我在以下示例中遇到此错误:

  • 生成器结果:
    “发送命令失败”不可见(后面有更多参考)1085:12
似乎我需要在sample_client.ads中声明异常,然后代码进行编译,但我发现这种方法是非模块化的,违反直觉的。所以问题是我如何才能做到“正确”并从命令界面模块导出

示例客户端,如

——示例\u client.adb--
:
具有命令界面;
:
包体示例\u客户端为
程序示例为
开始
:  ... 东西
例外
当发送命令失败时=>
跟踪_错误(“发送异常:示例中发送_命令_失败”);
提高;
结束示例;
客户机端样本;
对于此处的库接口:

--command\u interface.ads--
包命令接口
:
异常发送命令失败;
:
终端命令接口;
正文中的某些代码可能引发Send_命令\u失败异常

--command\u interface.adb--
包体命令\u接口
: ... 代码引发:发送命令失败
:
结束命令_接口;——规范
包体命令\u接口
: ... 代码引发:发送命令失败
:
结束命令_接口;——规范

您是否尝试告诉编译器在哪里可以找到异常声明

    exception
        when command_interface.Send_Command_Failed =>

是的。经过尝试、测试,效果良好。我现在不好意思地意识到我让旧代码弄糊涂了。当然,我需要使用限定名称!非常感谢@egilhh