Miért nem jó a throw a fügvényben? (Java)
public void fgv(int s){
if (s%3<1) System.out.println(s*s*s);
else {throw new Exception("Nem jó szám");
}
}
public static void main(String[] args) {
try{
int i=10;
fgv(i);
}catch( Exception e ) { System.out.println(e); }
}
}
Vagyis:
public void fgv(int s){
if (s%3<1){
System.out.println(s*s*s);
}else{
throw new Exception("Nem jó szám");
}
}
Az if-fel semmi baj nincsen, true ágon egy utasítás van, nem kell (csak ajánlott) kapcsoszárójeleket kitenni köré.
Szerintem meg az a baj a throw-val, hogy nem jelezted a függvényfejlécben, hogy az a függvény (fgv) kivételt dobhat.
Egyébként azt képzeld el, hogy a fordító pontosan kiírja, mi a hiba. Szóval mit ír ki?
public void fgv(int s) throws Exception {}
Így bejelented, hogy a függvény kivételt dob.
Tess:
public class Main{
public static void fgv(int s) throws Exception{
if (s%3<1) {System.out.println(s*s*s);}
else {throw new Exception("Nem jó szám");
}
}
public static void main(String[] args) {
try{
int i=10;
fgv(i);
}catch( Exception e ) { System.out.println(e); }
}
}
Hiányzott az osztálydeklaráció (lehet, hogy azt csak ne másoltad be), az fgv függvény fejlécében nem mondtad meg neki, hogy továbbdobhatja a kivételt.
Én kapcsos zárójelbe tettem az if utáni utasítást is, de anélkül is jól működött.
java.lang.RuntimeException: Uncompilable source code - non-static method fgv(int) cannot be referenced from a static context
Ez a hiba.
Osztálydeklaráció nem is volt.:D
Köszi mindenkinek a választ.:)
Nálam az volt a baj,hogy nem static a fügvény,emellett nem volt jelezve.
public static void fgv(int s)throws Exception {
if (s%3<1)
{System.out.println(s*s*s);}
else {throw new Exception("Nem jó szám");
}
}
public static void main(String[] args) {
try{
int i=10;
fgv(i);
}catch( Exception e ) { System.out.println(e); }
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!