w metodzie publicznej wywolywana metoda prywatna - gdzie walidacja?

0

Gdzie powinno zrobić się sprawdzenie wartości zmiennej przekazanej jako argument funkcji - w metodzie publicznej czy prywatnej - a może w obu? Mam np. kod:

 
public void MyPublicFunction(int x)
{
    // jakis kod NIE operujacy na zmiennej x

    int y = MyPrivateFunction(x); // w metodzie prywatnej jest dopiero uzycie wartosci x

    // jakis kod operujacy na zmiennej y
}


private int MyPrivateFunction(int x)
{
    return 5 / x;
}

Chciałbym rzucić wyjątek gdy wartość zmiennej x jest <= 0 czyli:

 
if (x <= 0)
{
    throw new Exception("bla bla bla");
}

Czy powinienem tego ifa wstawić na początku metody publicznej - wówczas program nie będzie musiał wykonywać zbędnych operacji do momentu dojścia do metody prywatnej gdybym dopiero tam zrobił to sprawdzenie czy może tylko w metodzie prywatnej zrobić to sprawdzenie, a może w obu? Jak zwykle robicie / jak jest poprawnie?

0

Ja bym weryfikował raczej argumenty funkcji publicznej. Użytkownika klasy interesują raczej publiczne niż prywatne funkcje, więc niech dostanie informacje o błędzie jak najszybciej.

0

ok dzieki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1