Unreported Exception – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Unreported Exception – Java – Fórum – Programujte.comUnreported Exception – Java – Fórum – Programujte.com

 

Hanule
~ Anonymní uživatel
37 příspěvků
24. 11. 2013   #1
-
0
-

Ahoj, mám problém s hláškou kompilátoru unreported exception.

Třida Fridge:

-metoda addToFridge má vložit do kolekce novou ingredienci.

 public Collection<Ingredient> addToFridge(Ingredient ingredient) throws FridgeOverflowException{
        
if( capacity < listOfIngredient.size()+1){
        throw new FridgeOverflowException("Fail");
        }

        listOfIngredient.add(ingredient);
          
         return listOfIngredient;
    }

Třída main:

public static void main(String[] args){
        List<Ingredient> listNew = new ArrayList<>();
        Fridge f1 = new Fridge(100,listNew);
        
        try{                
            f1.addToFridge(new Ingredient("spenat",30,true));

        }catch(FridgeOverflowException fov){
            throw new FridgeOverflowException("Full fridge.",fov);
        }

    }
}

FridgeOverfullException je vytvořena z konstruktorů vyjímek.

Bohužel při spuštění mainu mi kompilátor hlásí unreported exception FridgeOverfullException. Bohužel nemohu přijít na to proč, protože si myslím, že jsem tuto vyjímku ošetřila v trycatch bloku.

Děkuji za rady

Nahlásit jako SPAM
IP: 93.181.80.–
z
~ Anonymní uživatel
268 příspěvků
24. 11. 2013   #2
-
0
-

jsem tuto vyjímku ošetřila v trycatch bloku

Jo, vyhozením stejné vyjímky ;-)

Nahlásit jako SPAM
IP: 88.101.8.–
Hanule
~ Anonymní uživatel
37 příspěvků
24. 11. 2013   #3
-
0
-

#2 z
Jak to myslíš? Jsem začátečník v JAVě, ale myslela jsem si, že vlastně když to addToFridge vyhodí vyjímku FridgeOverflowException, tak ji tam zachytím a vyhodím hlášku. Takhle se to nedělá?

Nahlásit jako SPAM
IP: 93.181.80.–
nosko
~ Anonymní uživatel
140 příspěvků
24. 11. 2013   #4
-
0
-

Ty tu vynimky sice spravne zachytis ale hned ju vyhodis spat :)

public static void main(String[] args){
        List<Ingredient> listNew = new ArrayList<>();
        Fridge f1 = new Fridge(100,listNew);
        
        try{                
            f1.addToFridge(new Ingredient("spenat",30,true));

        }catch(FridgeOverflowException fov){
            // tu staci osetrit chybovy stav, vyhodit nejaky alert ...
        }

    }
}
Nahlásit jako SPAM
IP: 78.98.128.–
Hanule
~ Anonymní uživatel
37 příspěvků
24. 11. 2013   #5
-
0
-

#4 nosko
Aha...děkuju, takže já zachytím výjimku FridgeOverFlow, ale do toho vnitřku catche musím ošetřit něco na stul NullPointeru, IllegalArgument apod?

Nahlásit jako SPAM
IP: 93.181.80.–
Flowy0
Věrný člen
24. 11. 2013   #6
-
0
-

vykona sa try block ... ak sa pocas jeho vykonavanie vyskytne exception na ktory je nastaveny catch tak to prejde do bloku catch a ocakava sa ze spravis nieco aby si opravila chybu ...

Nahlásit jako SPAM
IP: 178.41.208.–
https://github.com/Flowy
sleepy
~ Anonymní uživatel
422 příspěvků
25. 11. 2013   #7
-
0
-

Alebo to zalogujes, ukoncis atd ... . Inak taketo nieco sa pouziva ak mas objekt v ktorom sa nachadza objekt, ktory vie hodit vynimku a ty aby si blizsie specifikovala tvoju vinimku tak odchytis povodnu vynimku a hodis novu viac suited pre tvoj objekt. Bloch uvadza takyto kod:

public T get(int index) {
	ListIterator<T> i = listIterator(index);
	try {
		return i.next();
	} catch(NoSuchElementException e) {
		throw new IndexOutOfBoundsException("Index: "+index);
	}
}

Tvrdi ze je nekorektne ak metoda hadze vynimku ktora nesuvisi so zadanou ulohou. Ak by ten blok zostal bez try catch hodil by NoSuchElementException, namiesto IndexOutOfBounds, ale vzdy je tu ale ani toto by sa nemalo prehanat.Jednoducho vynimka by mala popisovat co sa tam stalo.

Nahlásit jako SPAM
IP: 147.175.177.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Spool exception — založil tomáš

Walhalla Exception — založil liske

Exception esocketerror — založil ha2

Exception socket — založil Martin

Exception in tkinter callback — založil Marek Kadlčík

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý