Kezdőoldal » Számítástechnika » Programozás » Ebben az esetben hogyan...

Ebben az esetben hogyan kellene a kivételt kezelnem?

Figyelt kérdés

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?


2016. máj. 1. 00:44
1 2
 1/11 A kérdező kommentje:

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.

2016. máj. 1. 00:52
 2/11 anonim ***** válasza:
A feladat az, hogy ha a String számot tartalmaz, pl: "271" akkor dobjon kivételt.
2016. máj. 1. 04:02
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

nem, hanem ha számot küld rá.

tehát myFunc("blabla"); -> ez működik

myFunc(4545)--> erre meg én dobjak kivételt

2016. máj. 1. 14:08
 4/11 anonim ***** válasza:
forditási időben elhasal, hogy tudnál már kivételt dobni?
2016. máj. 1. 14:22
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:

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;

}

2016. máj. 1. 14:29
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

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.

2016. máj. 1. 15:41
 7/11 anonim ***** válasza:

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:

[link]


*: Egyébként kétlem, hogy ez a feladat. Inkább az, amit fentebb írt #2-es kolléga. Annak van értelme.

2016. máj. 1. 15:46
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:
*: Ja oké, most látom, amit bemásoltál, az előző csillagos részem tárgytalannak tekinthető.
2016. máj. 1. 15:49
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:

itt a teljes :

[link]


Maga főfeladat nem volt nehéz, csak ez az exception része.

2016. máj. 1. 16:00
 10/11 anonim ***** válasza:
Nyilván a feladat írója összezavarodott miközben írta a feladatot, és elfelejtette írni, hogy a String típus ellenőrzés a Javascriptes részre vonatkozik nem a Java részre.
2016. máj. 2. 00:19
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!