Při programování v jazyce Java se může vyskytnout chyba spojená s chybějící návratovou hodnotou (missing return value) v metodě, která by měla vrátit nějakou hodnotu, ale nestane se tak.
Tato chybová situace nastává, když deklarujeme metodu s návratovým typem, který není void (prázdný), tedy očekáváme, že metoda vrátí nějakou hodnotu, avšak v těle metody se nenachází příkaz return , který by nám umožnil tuto hodnotu vrátit.
Pro lepší pochopení této chyby je důležité si uvědomit, že metoda s určitým návratovým typem by měla vždy vrátit hodnotu tohoto typu, a to včetně všech možných větvení a situací. Pokud se tak nestane, kompilátor jazyka Java nás upozorní chybovou zprávou "missing return value".
K vyřešení této chyby je třeba zajistit, aby všechny větve metody (pokud jde o metodu s více větvemi) obsahovaly příkaz return s návratovou hodnotou daného typu. Pokud bychom měli metodu, která v určitých situacích nemá vrátit žádnou hodnotu, měla by mít návratový typ void.
Zde je příklad kódu v jazyce Java, který ilustruje chybu "missing return value":
V tomto příkladu metoda divide má za úkol provést dělení čísel a ab. Pokud druhé číslo b není nulou, vrátí se výsledek dělení a/b. Nicméně, pokud je b roven nule, chybí příkaz return, který by vrátil hodnotu. To vytváří chybu "chybějící návratová hodnota", protože všechny větve metody by měly mít příkaz return pro správné fungování.
Pro opravu této chyby je třeba přidat příkaz return s odpovídající hodnotou do všech větví metody:
Takýmto způsobem metoda vždy vrátí hodnotu, dokonce iv případě, kdy druhé číslo je nulou, a tím se odstraní chyba "chybějící návratová hodnota".
Abychom tuto chybu odstranili, je třeba přidat příkaz return s návratovou hodnotou i do větve if, která obsahuje návratový typ.
Celkově je důležité si uvědomit, že pokud v metodě očekáváme návratovou hodnotu, je nutné zajistit, aby všechny větve obsahovaly příkaz return s odpovídající hodnotou.
V tomto článku jsme se podívali na chybu "missing return value" v jazyce Java, která vzniká při neprodání návratové hodnoty v metodě, která by ji měla vrátit. Pro správné fungování programu je důležité zajistit, aby všechny návratové typy byly obsaženy ve všech větvích dané metody.