Ebben az esetben hogyan kellene a kivételt kezelnem?
van egy függvényem ,ami String-et vár. És kivételt kell dobnom ,ha a teszt eset nem stringet küld rá ,hanem pl int-et. Na ezt hogyan, ha már le se fordul, mert a teszt eset rossz paramétert ad be?
pl public String myFunc(String str){
// doSomething
}
A feladat ,hogy IllegalArgumentException-t dobjon.
A tesztet nem én csinálom. Na de még is ,hogy ha még a kód részemig sem jut el az egész?
próbáltam a method fejben throws-sal
majd a törzsben if(akármi){throw IllegalArg..}
A gond ,hogy el se jut(el se kezdi) idáig a kód compile hiba miatt, tehát esélyem sincs kezelni.
nem, hanem ha számot küld rá.
tehát myFunc("blabla"); -> ez működik
myFunc(4545)--> erre meg én dobjak kivételt
valahogy így gondolták szerintem:
public String myFunc(String str) throws IllegalArgumentException {
_try {
__int n = Integer.parseInt(str);
_} catch(NumberFormatException e) {
__throw new IllegalArgumentException();
_}
_return str;
}
csakhogy ez ugyanúgy compileerror.
A gond ugye az ,hogy olyan kódrészletben lesz a hiba a rossz paraméter miatt amihez nincs hozzáférésem.
Ez egyébként egy feladat codewars-on.
If the entered string is incorrect: length is 7+, has non-hexadecimal characters or non-string type, then the Error(IllegalArgumentException - Java) should be raised/thrown.
example:
>>> getReversedColor("00fffff")
Uncaught Error: Incorrect string length
>>> getReversedColor("00ffZZ")
Uncaught Error: Non-hex chars
>>> getReversedColor(112233)
Uncaught Error: Incorrect string type
első kettő egyszerű , utolsóval van gond mikor a teszten eleve int-et akar átadni.
Persze, hogy compile error. String-et vár, te nem String-et adsz...
> És kivételt kell dobnom ,ha a teszt eset nem stringet küld rá ,hanem pl int-et.
Ha tényleg ez a feladat*, akkor ilyet csinálhatsz például:
String f(Object a) { throw new IllegalArgumentException(); }
String f(String a) { doSg(); return a; }
Ha String-el hívják, lefut, minden mással nem.
Működő kód:
*: Egyébként kétlem, hogy ez a feladat. Inkább az, amit fentebb írt #2-es kolléga. Annak van értelme.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!