Java-ban, ha egy kivételt a main-ből továbbdobunk, mi fogja lekezelni?
package javathrow;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
public class JavaThrow {
public static void writeList() throws IOException {
PrintWriter out
= new PrintWriter(new FileWriter("OutFile.txt"));
out.println("ok");
out.close();
}
public static void main(String[] args) throws IOException {
writeList();
}
}
itt látszik, hogy a main-ben sem kezelem le a kivételt csak továbbdobom, de hová? az op rendszernek vagy a JVM-nek?
tehát ha nem tudja az op rendszernek, akkor a JVM megkapja és tovább?
Javaban koncepció, hogy kezeljünk le minden ellenőrzött kivételt (nem futási idejű kivétel). De ha csak továbbdobáljuk az olyan mintha le sem kezelnénk ergo akkor fölösleges minden még a dobálás is.
???
Ezért kell lekezelni.
A továbbdobás nem lekezelés.
Csak az én lustaságomon múlik az egész, itt van az internet. Angol fórumon könnyen kivesézték, de gyorsan leírom ide ha valakinek kellene.
Ha a main-ből továbbdobjuk, akkor ugyanúgy kezeli a JVM mint a futásidejű hibákat. Vagyis a JVM loggolja és a hívási vermet kiírja számunkra a consolra és leállítja a szálat.
> Ha a main-ből továbbdobjuk, akkor ugyanúgy kezeli a JVM mint a futásidejű hibákat. Vagyis a JVM loggolja és a hívási vermet kiírja számunkra a consolra és leállítja a szálat.
Nem azért, de ehhez nem kellett volna egy betűt sem olvasni, csak kipróbálni.
public static void main(String[] args) throws Exception {
throw new Exception("teszt");
}
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!