Wpis z mikrobloga

#java i w sumie #programowanie bo inne jezyki tez ogarna

szybkie pytanko, w metodzie void() ktore jest bardziej poprawne? jak napisalem 2 to w projekcie mi mowia ze mam pierwsze zrobic xD

if (statement) {
return;
}
try {} catch {}

vs

if (!statement) {
try {} catch {}
}
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Bruno_: W pierwszym przypadku jawnie stwierdzasz, że w przypadku wejścia w warunek kończysz działanie metody. Dalej jest przetwarzanie.

W drugim przypadku jeżeli warunek, tu zaprzeczenie, jest spełniony, to wykonujesz przetwarzanie.

Dopóki w metodzie nie ma nic poniżej tego kodu to są sobie równe, ale jak dorzucisz poniżej wszystkiego jakąś linijkę kodu, to nagle będzie inaczej działać.
  • Odpowiedz
@Bruno_: Świetny przykład źle zadanego pytania. Większość programistów, nawet tych słabych odpowie, że pierwszy kod jest lepszy, zgodnie z generalną zasadą, że im mniej zagnieżdżeń tym lepiej (łatwiejszy w utrzymaniu, czytelniejszy kod).
Jeśli twój kod wyglądałby dokładnie tak jak napisałeś to @AdiLDZ: ma rację w przeciwnym razie niestety nie jest tak prosto i w zasadzie na każde pytanie można odpowiedzieć: "to zależy".

Do zapisu takiego kodu można zastosować dowolny podzbiór ogólnych zasad:
1. Im mniej zagnieżdżeń tym lepiej.
2. try{...}catch(){...} powinno być
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Bruno_: pierwsza opcja to "validate first". Jak podejrzysz sobie implementację metod w bibliotekach Apache Commons, to zobaczysz że jest to częściej stosowane. I bardzo czytelne, osobiście wolę to niż kilkupoziomowe zagnieżdżanie.
  • Odpowiedz