他のプロジェクトから呼び出されることを意図したいくつかのデータベースアクションのために、1つのプロジェクトでパブリック関数を作成しています。コードを書くだけで、次のアプローチをとることができます。
public int GetCount(Apple apple, Orange orange)
{
try
{
// query;
return 1000;
}
catch
{
// log it
return -1;
}
}
また
public int? GetCount(Apple apple, Orange orange)
{
try
{
// query;
return 1000;
}
catch
{
// log it
return null;
}
}
また
public bool GetCount(Apple apple, Orange orange, out int count)
{
count = -1;
try
{
// query;
count = 1000;
return true;
}
catch
{
// log it
return false;
}
}
私は現在、次のような他のビジネスオブジェクトに対して「null」の方法を実行しています。
public Apple GetApple(Orange orange)
{
try
{
// query;
return apple;
}
catch
{
// log it
return null;
}
}
そして、呼び出し元は、返された値がであるかどうかを確認し、null
それに応じてエラーメッセージをポップします。そのため、値型の戻り型としても使用する傾向があります。int?
しかし、私はこれらのものの許容可能な設計または奨励された実践が何であるかを知りたいです。
編集:呼び出し元の周りにtry catchを配置すると、コードベースにtry catchが散らかったままになりませんか?呼び出し先からの例外をキャッチして、それを呼び出すすべての関数が気にする必要がないようにする方が簡単ではありませんか?呼び出し先がエラーをキャッチし、呼び出し元にエラーが発生したことを通知した場合、何が問題になりますか?