Gå til innhold

Anbefalte innlegg

Skrevet
public void setNavn(String Navn) { 
 if(Navn.length() > 50){ 
 return; 
 } 

er det noe feil med denne kode?

da tenker jeg på siden det er void, så kan det ikke returnere noe verdi? men hvorfor er return; der?

Videoannonse
Annonse
Skrevet

grunnen til return der er ment som "Returner ut av funksjonen". Siden det ikke er lagt ved noen verdi returnerer den ingen verdi, den hopper bare ut av funksjonen.

 

Poenget med funksjonen er vel å ikke sette navnet om navnet har en lengde over 50.

Skrevet

return er der for å hoppe ut av metoden tidlig (antar det kommer mer i den metoden som du ikke tok med). Ganske vanlig å ha slike sjekker først i metoder - "guards" kalles det gjerne.

 

I dette tilfellet burde derimot guarden kastet en exception, ikke bare returnert. For hvis setNavn ikke kan gjøre jobben sin så bør den som kaller metoden få beskjed om det.

  • 3 uker senere...
Skrevet (endret)

I dette tilfellet burde derimot guarden kastet en exception, ikke bare returnert. For hvis setNavn ikke kan gjøre jobben sin så bør den som kaller metoden få beskjed om det.

Ikke nødvendigvis enig. Dette kan fint legges i return type. Endret av Lycantrophe
Skrevet

 

I dette tilfellet burde derimot guarden kastet en exception, ikke bare returnert. For hvis setNavn ikke kan gjøre jobben sin så bør den som kaller metoden få beskjed om det.

Ikke nødvendigvis enig. Dette kan fin legges i return type.

 

Tøv. Anti-pattern. I dette tilflette vil det være kode som beviselig er feil. Det er ingen grunn til å tro at brukeren av API-et har behandlet returkode riktig, men exceptions feil. Dersom brukeren ikke behandlet returkoder feil har du potensielt et program i en state der brukeren ikke har tenkt på hva som skal skje mens en exception vil hindre programmet fra å fortsette i en state der det er en beviselig programmeringsfeil.

Skrevet

Ikke nødvendigvis. Kanskje i dette tilfellet, og hvertfall i Java-verdenen, er det nok den beste løsningen, om ikke annet hva som forventes av en stor andel brukere.

 

Men det er nok av andre tilfeller hvor jeg heller ser ting i return type. Maybe/optional yo.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...