• ベストアンサー

内部関数のエラーを外部に

内部関数で出るエラーを外部関数のエラーとしては いけないものでしょうか? 言語はCです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.5

その外部関数1つだけを考えてみれば、内部関数で出るエラーを外部関数のエラーとして良いと思います。 もちろん、以下のようなケースはダメですが。 内部関数Aの戻り値=1と内部関数Bの戻り値=1があって、戻り値=1の意味が、内部関数Aと内部関数Bとで異なる場合です。 この場合、同じ戻り値=1を外部関数が返しますが、エラーの意味が1つになりません。 従って、内部関数で出るエラーを外部関数のエラーとする場合は、最低でも以下の条件を守って戻り値を決定したほうが良いでしょう。 1.1つの戻り値は1つの意味に割り当てられていること。 2.エラーの場合、外部関数の使用者が、その戻り値を知ることにより、エラーとなった原因が容易に特定できること。 3.エラーの場合、外部関数の使用者が、その戻り値を使用して、容易にエラー対策を施したコーディングができること。 4.エラーの場合、外部関数の使用者から、「この戻り値がその外部関数を呼び出すと返ってくるのですが、なにが原因でしょうか」という問い合わせが有ったときに、あなたが、容易にそのエラーの原因が特定できること。 上記は、1つの外部関数のみに限定した場合です。もちろん、プロジェクトとして、外部関数の戻り値を統一することもありますので、その制約が有る場合は、それを守る必要があります。

その他の回答 (4)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

言語仕様上は問題ないです。

noname#77845
noname#77845
回答No.3

「設計ルールに当たる質問」 との事ですが、まさに 「仕様次第」 でしょうね。 それでも良いという仕様ならOK。 それじゃだめという仕様ならNG。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

すいません。質問の意味がわかりません。もっと、具体的に、例などをあげて、説明していただけると、わかりやすいと思うのですが、いかがでしょうか。

atc10_99
質問者

補足

設計ルールに当たる質問ですが、 内部関数というのは、インターフェースを公開していない関数です 外部関数というのは、インターフェースを公開している関数です。 インターフェスを公開している関数は関数内部で内部関数をコールします。コールされた後、戻り値を持ってコールされたところに 戻ってくるのですが、その戻り値をそのまま、外部関数の戻り値として、採用してはいけないのかという質問です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「内部関数」とか「外部関数」って何?

関連するQ&A