mainLoop: for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (array[i][j] == ‘\u0000’) {
continue mainLoop;
}
}
}
mainLoop: for (i = 0, j = 0; i < 3; ++i, ++j) {
System.out.println("main loop");
for (int x = 0; x < 1; ++x) {
if (x == 0) {
System.out.println("x = 0");
break mainLoop;
}
}
}
W przypadku switch zmienna warunkowa musi być "assignment compatible" z int (czyli. byte, short, char lub int). Wyrażenie po slowie kluczowym "case" musi być wartością lub stałą.Wyjątki
Jeśli metoda ma w deklaracji "throws", jej wywołanie musi być otoczone odpowiednim blokiem try-catch. Inaczej nastąpi błąd kompilacji. Gdy nie ma bloku catch dla danego wyjątku, JVM wypisuje stack trace i kończy działanie. Nie trzeba łapać, ani obsługiwać (throws) wyjątków dziedziczących po RuntimeException! Przy przeciązaniu funkcji, zadeklarowane wyjątki muszą dziedziczyć po wyjątku zadeklarowanym w funkcji pierwotnej.
Funkcje rozróżniane są przez nazwę oraz parametry, nie przez wartość zwracaną.
Blok finally jest zawsze wykonywany, nawet jak zaden z catch nie obsłużył wyjątku. Finally może się nie wykonać w przypadku śmierci wątku, System.exit() lub wyłączeniu komuptera.
Asercje
assert Expression1
assert Expression1:Expression2
Expression1 musi być boolowskie. Asercje trzeba włączyć w JVM (java -ea MyApp), jeśli są wyłączone nic nie robią. Jeśli Expression1 == true, żadna dalsza akcja nie jest wykonywana, jeśli jest false - rzucany jest wyjątek AssertionExcpetion oraz opcjonalnie dodawane do niego Expression2 jako wiadomość (toString).
Brak komentarzy:
Prześlij komentarz