Arten von exceptions in Java
Ich bin verwirrt über die Arten von Ausnahmen in Java. Auf vielen tutorial-Webseiten, die ich gesehen habe, dass zwei Arten von exceptions gibt es in java
- Compile-Zeit Ausnahme
- Laufzeit Ausnahme
Aber wenn ich Sprach mit einigen java-Meister, nach Ihnen gibt es keine solche Sache wie compile-Zeit Ausnahme. Sie sagte, es war compile-Zeit-Fehler nicht die Ausnahme, genauso wie ich nichts gefunden Kompilierung Ausnahme in Java docs. Aber wenn ich Folgendes Programm
File f = new File("C:/Documents and Settings/satyajeet/Desktop/satya.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = br.readLine();
System.out.println(s);
Ich unter output, wenn try-catch nicht zur Verfügung gestellt.
D:\jdk1.6.0_19\bin>javac Testing.java
Testing.java:7: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
FileReader fr=new FileReader(f);
^
Testing.java:9: unreported exception java.io.IOException; must be caught or declared to be thrown
String s=br.readLine();
^
2 errors
Also sollte ich prüfen, um den Fehler der Kompilierung Ausnahme?
- "Auf viele berühmte tutorial websites, die ich gesehen habe, dass zwei Arten von exceptions gibt es in java 1) Compile-Zeit-Ausnahme 2) Laufzeit-exception ". Was berühmte tutorials? Sind Sie sicher, dass Sie redeten nicht über checked und unchecked exceptions?
- 1) Es gibt keine solche Sache wie eine Kompilierung Ausnahme. Ihr code wird nicht ausgeführt, daher kann es keine Ausnahme. Dies ist ein compiler-Fehler. 2) Es gibt zwei Arten von Ausnahmen in Java: checked und nicht aktiviert.
- Laufzeit vs. Compile-Zeit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es 3 Arten von Throwables in Java.
Exception
s (Exception
und unten in der Kette, speichern fürRuntimeException
). Diese sind geprüft durch den compiler und müssen gefangen werden, wenn geworfen. Sie stellen eine außergewöhnliche Bedingung, die in der Regel erstattungsfähig, z.B. wenn eine referenzierte Datei nicht gefunden wird auf die Datei system (sieheFileNotFoundException
).Exception
s (KinderRuntimeException
). Diese können geworfen, ohne zu fangen. Sie stellen typischerweise Fehler in der Programmierung, zum Beispiel aufrufen von Methoden für einnull
- Objekt (sieheNullPointerException
).Errors
. Diese sind ungeprüft als gut. Sie werden ausgelöst durch die JVM, wenn etwas sehr falsch ist, passiert in der Regel über die Entwickler direkte Kontrolle (z.B. out of memory, sieheOutOfMemoryError
). Compiler-Fehler ausgegeben werden, durch den Java-compiler wenn der code nicht kompiliert werden, die aus verschiedenen Gründen wie schlechte syntax, nicht eindeutig ruft, versagt zu fangen überprüftException
usw. etc.Alle "berühmten website", die sagte, dass sollte nicht gelesen werden. Es ist Müll. Es gibt keine solche Sache wie ein "compile-time-exception". Die Java-Freaks, waren Sie reden korrekt sind1.
Tatsächlich, Sie wahrscheinlich falsch eingeschätzt oder missverstanden, was Sie Lesen auf diesen "berühmten Seiten". Es sind die "compile-Zeit-FEHLER" und "Laufzeit-AUSNAHMEN".
In Ihrem Beispiel, was Sie haben, ist ein paar von compile-time Fehlermeldung, die aufgrund von Fehlern in Ihrem code. Die Fehler sind da, weil Ihr code nicht behandeln Sie Ausnahmen richtig, aber Sie sind FEHLER dennoch. Und Sie erkannt werden, zur compile-Zeit ... durch den Java-compiler.
1 ... und vielleicht ist es Zeit aufzuhören mit semi-abwertende Etiketten wie "geek" für Sie. Es klingt wie Sie verdienen einen gewissen Respekt.
Gibt es keine solche Sache als "compile-time-Ausnahmen". Ausnahmen nur passieren zur Laufzeit (und Sie können an-oder abgewählt werden - möchten Sie vielleicht diesen look up).
Was Sie da haben ist einfach zu einem Kompilierungsfehler. Ihr code nicht auch gültige Java -.
Durch die Art und Weise, die meisten tutorials sind Müll. Verwenden Sie seriöse Quellen, wie die Oracle-tutorials. Oder ein gutes Buch.
Keine compile-Zeit Ausnahmen. Wie die obigen Kommentare erwähnt.
Nachfolgend finden Sie javdocs auf Ausnahmen und link zu Informationen über checked und unchecked exceptions.
https://docs.oracle.com/javase/tutorial/essential/exceptions/
http://www.geeksforgeeks.org/checked-vs-unchecked-exceptions-in-java/
Finden Sie auch die untenstehende Diskussion nützlich
Unterschiede zwischen Ausnahme-und Fehler -
Wenn Sie diese während der Kompilierung, dann werden diese beiden sind Kompilierungsfehler. Kompilierungs-Fehler sind im Grunde Probleme berichtet, die durch den java-compiler. Kompilierungs-Fehler können gehören:
Und wenn Sie diese während das Programm läuft, es sind Ausnahmen. Java-Ausnahme, wie definiert in den doc, ist ein außergewöhnliches Ereignis, das Auftritt, während der Ausführung eines Programms, stört den normalen Ablauf des Programms
Die Ausgabe von javac.exe du gepostet hast ist ein Fehler der software, der von der unterscheidet, die Sie entwickeln.
Es bedeutet, dass Ihr code nicht beschwert, um die Java-Code-Paradigmen: in der Tat, Sie nicht die überprüfung eine checked exception.
Dein code wurde nicht geworfen-ohne Ausnahme oder Fehler, es funktioniert einfach nicht existieren.
Gibt es zwei Arten von Ausnahmen in java.
Geprüft : exception muss behandelt werden, durch den Programmierer, sonst würde das Programm wirft den Kompilierungsfehler.
"so können Sie namens checked-exception ist der Kompilierung Ausnahme"
Nun Ungeprüften Ausnahme : In der ungeprüften Ausnahme-Programmierer schreiben den code in einer Weise zu vermeiden, die unchecked exception. Programmierer können nicht die compilation Ausnahme.
"Können Sie sogenannte unchecked exception ist eine exception zur Laufzeit,"
Liste der zu überprüfenden Ausnahme:
wenn Methode sollte das werfen einer checked exception dann behandelt werden sollte, indem die
Liste der Ungeprüften Ausnahme