Es ist 5 Monate her, seit ich der aktuellen Seite beigetreten bin. In Gesprächen mit Fachleuten gibt es viele Dinge wie "Warum passiert das?" Und "Was macht diese Beschreibung?" Manchmal habe ich es zusammen nachgeschlagen und gesagt "Ich verstehe!".
Es ist nicht gut, es sofort zu beenden Ich wollte es mir als Memorandum überlassen.
Wenn Sie ähnliche Fragen haben, hoffe ich, dass Sie diesen Artikel nützlich finden.
Eines Tages Gespräch
Herr A "Was ist das
(int)
? " I "** cast ** ist derjenige. ** ändert den Typ **." Herr A "Vielen Dank." ~ Ein paar Tage später ~ Herr A "Ich habe eine Frage, kann ich sie einer Variablen vom Typ Integer zuweisen, ohne einen Wert vom Typ int ** zu geben?" I "Ich kann es schaffen. ** Auto Boxing ** oder ** Unboxing **, es scheint, dass es eine Funktion mit diesem Namen war ..."
public class Sample {
public void sample(long l) {
int i = (int) l;
Integer integer = i;
log.info("int=[{}], Integer=[{}]", i, integer);
}
}
Java verfügt über eine Funktion, die implizit eine Typkonvertierung durchführt, wenn ein primitiver Typ (int) einer Wrapper-Klasse (Integer) zugewiesen wird, die als Autoboxing ** bezeichnet wird. Im Gegensatz zum Autoboxing wird ** die Funktion, die implizit eine Typkonvertierung von einer Wrapper-Klasse (Integer) in einen primitiven Typ (int) durchführt, als Unboxing ** bezeichnet. Seien Sie vorsichtig beim Entpacken </ font>, ** Die Wrapper-Klasse kann null verarbeiten, da es sich um ein Objekt handelt. Wenn ich jedoch versuche, es einem primitiven Typ zuzuweisen, wird eine NullPointerException ** angezeigt. Lassen Sie uns den Wert im Voraus überprüfen.
Primitiver Typ | Wrapper-Klasse |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Eines Tages Gespräch
Herr A "Ich denke, es gibt eine ** try-catch-Anweisung **, aber was ist das Argument nach diesem Versuch?" I "Was ist das ... Lass es uns herausfinden ..."
public void Sample {
public void sample(Strin url) {
try (BufferedReader br = new BufferedReader(new FileReader(url))) {
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Dies ist eine Beschreibung namens ** Try-with-Resources-Syntax **, die in JavaSE7 und höher verwendet werden kann. Vor javaSE6 musste die Ressource beim Zugriff auf eine Datei oder Datenbank als "close ()" beschrieben werden. ** Try-with-resources schließt Ressourcen automatisch, wenn die try-Klausel beendet wird **.
try ()
Teil)close ()
close ()
auch eine Ausnahme auslöst, ** wird die in der try-Klausel aufgetretene Ausnahme ausgelöst **.close ()
ausgelöste Ausnahme verwenden möchten, können Sie mit ** ex.getSuppressed ()
** ein Array von Throwables abrufen.Eines Tages Gespräch
Herr A "Ich möchte nach dieser Quelle fragen, was ist ** wirft ?" I " Ich schreibe nur explizit die Ausnahmen, die die Methode auslösen könnte ** Ist es nicht **? ** Es ist möglich, ohne sie zu kompilieren ...? **" Mr. A "Ich werde wütend, wenn ich lösche ** wirft AAAException, richtig? ... Warum?" Ich "... warum? ** Ich muss keine BBBException schreiben ** ..."
python
public class Sample {
public Object sample(String url, Request request) throws AAAException {
XXXClient client = new XXXClient();
try {
return client.request(url, reuqest);
} catch (AAAException ex) {
log.error("Eine Art Protokoll", ex);
throw ex;
} catch (BBBException ex) {
log.error("Eine Art Protokoll", ex);
throw ex;
}
}
}
In Java gibt es zwei Arten von Ausnahmen: ** geprüfte Ausnahmen (geprüfte Ausnahmen) ** und ** ungeprüfte Ausnahmen (ungeprüfte Ausnahmen) **. (Genau genommen gibt es einen ** Fehler **, der hier jedoch weggelassen wird.) ** Benötigt Würfe für Methoden, die geprüfte Ausnahmen verursachen können **. In diesem Beispiel war ** AAAException eine aktivierte Ausnahme, daher waren Würfe erforderlich, und BBBException war eine nicht aktivierte Ausnahme, sodass keine Würfe hinzugefügt werden mussten **.
Inspektionsausnahme
Ausnahme, die auch dann ausgelöst wird, wenn Sie sie korrekt schreiben und sich wie erwartet verhalten (≒ im Implementierungsprogramm kann nichts getan werden)
Dies ist ein vorhersehbarer Fehler, daher müssen Sie den Anrufer zwingen, ihn zu behandeln (Würfe erforderlich).
Unterklasse von java.lang.Exception
IOException… E / A-Fehler
FileNotFoundException… Datei nicht gefunden
SQLException ... SQL-Fehler ... usw.
Es scheint ein Konzept zu sein, das nur Java </ font> hat
Deaktivierte Ausnahme
Ausnahmen aufgrund verschiedener Ursachen (≒ kann durch das Implementierungsprogramm vermieden werden)
Da es schwierig ist, alle möglichen Muster vorherzusagen, ist der Anrufer nicht gezwungen, damit umzugehen, und die Ausführung wird gestoppt.
Unterklasse von java.lang.RuntimeException
NullPointerException… Wert ist NULL
NumberFormatException… Wert kann nicht in eine Zahl konvertiert werden
ArrayIndexOutOfRangeException… Es liegt außerhalb des Bereichs der Liste oder des Arrays …… usw.
Andere Sprachen haben grundsätzlich nur ungeprüfte Ausnahmen </ font>
Einfaches Klassendiagramm
Die Ausgabe an jemanden ist eine Gelegenheit, um zu sehen, ob Sie sich selbst wirklich verstehen. Als ich es noch einmal nachschlug, vertiefte ich mein Verständnis und lernte viel. Wir werden es von Zeit zu Zeit weiter aktualisieren!
Bis zum Ende Danke fürs Lesen!
Recommended Posts