So strikt würde ich es jetzt nicht unbedingt machen. Bei API's und größeren Projekten handhaben wir es meist so, dass jede Methode der BusinessLogik einen entsprechenden Rückgabetyp hat.
Für das lesen von Daten aus der Datenbank beispielsweise etwas wie:
C#-Code: |
public class GetUserDataResult
{
public bool Success { get; set; }
public string Error { get; set; }
public UserData UserData { get; set }
}
|
Success und Error kommen hier natürlich aus einer gemeinsamen Basisklasse für Aufrufergebnisse.
Klar würde es auch mit Exceptions bis Stelle x ausreichen. Wir reden aber im von CodeF genannten Fall von erwarteten Fehlern die auch entsprechend behandelt werden sollten.