Inne działy

Java przykładowe programy

 

Java obsługa błędów 

 

Ogólnie rzecz biorąc, błędy mogą być podzielone na dwie kategorie: błędy popełnione w czasie projektowania i błędy logiczne. Błędy w czasie projektowania są łatwe do wykrycia, gdyż zazwyczaj podkreśla je NetBeans. Jeśli błąd uniemożliwia uruchamianie programu, NetBeans podkreśli go na czerwono.Błędy logiczne są, wprowadzone podczas programowania. Program będzie działał, ale, że zrobiłeś coś złego podczas kodowania, jest duża szansa, że ​​cały program będzie działał nieprawidłowo. Wkrótce zobaczysz przykłady uruchamiając program z błędami Zobaczysz również, jak sobie z nimi radzić. Ale najpierw słowo o tym, jak Java obsługuje błędy.


Wyjątki

W Javie, błędy są obsługiwane przez obiektException. Wyjątki możemy powiedzieć są wyrzucane, a Twoim zadaniem jest je złapać. Możesz to zrobić za pomocą bloku try ... catch. Try ... catch wygląda tak:

try {

}

catch ( Typ wyjątku błąd_zmienna ) {

}

CzęśćTry  blokutry ... catch  oznacza "wypróbuj ten kod". Jeśli coś pójdzie nie tak, Java przejdzie do bloku catch. Sprawdzi, co jest w nawiasach okrągłych, aby zobaczyć, jaki pojawił się błąd.Jeśli masz odpowiedni typ wyjątku, zostanie wykonany kod, który jest umieszczony w nawiasach klamrowych. Jeśli nie ma odpowiedniego typu wyjątku Java użyje domyślnego sposobu obsługi wyjątków, aby wyświetlić komunikat o błędzie.

Jako przykład, utwórz nową aplikację konsoli. Nazwiją ją dowolnie. W kodzie metody Main, wpisz następujący kod:

 

try {
int x = 10;
int y = 0;
int z = x / y;

System.out.println( z );
}
catch ( Exception err ) {
System.out.println( err.getMessage( ) );
}

W częścitry blokutry ... catch , deklarujemy trzy zmienne typu liczby całkowite, X, Y i Z. Następnie dzielimy x przezy, i wyświetlamy odpowiedź.

Jeśli coś pójdzie nie tak, mamy część catch. W nawiasy okrągłe części catch wpisujemy poniższą instrukcję:

Exception err

Klasy Exception używamy pierwszy raz. W tym przypadku używamy obiektu Exception error. Obiekt ten "łapie wszystkie" typy wyjątku, a nie jest to bardzo dobra praktyka programowania.Zmienimy go do określonego typu za moment.

Po obiekcie Exception umieszczamy nazwę zmiennej. W naszym przypadku nazwa zmiennej to err, ale można umieścić dowolną nazwę, jaka tylko się nam podoba.

W nawiasach części catch mamy instrukcję print. Ale spójrz, co mamy pomiędzy nawiasami okrągłymi instrukcji println:

 

err.getMessage( )

getMessage  to metoda obiektu Exception. Jak sama nazwa wskazuje, zwraca komunikat o błędzie związany z wyjątkiem.

Uruchom program i przetestuj go. Twój kod powinien wyglądać mniej więcej tak:

 

package naukabledy;


public class NaukaBledy {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        try{
            int x=10;
            int y=0;
            int z = x/y;
            System.out.println(z);
        }catch(Exception err){
            System.out.println(err.getMessage());
        }
    }    
}

I okno wyjściowe powinno zawierać następujące informacje:

run:
/ by zero
BUILD SUCCESSFUL (total time: 1 second)

Sam błąd, wygenerowany przez GetMessage, to jest linia w środku:

/ by zero

Innymi słowy, błąd dzielenia przez zero. Java nie pozwoli ci podzielić liczbę przez zero, stąd komunikat o błędzie.

Zmień kod na następujący:

 

double x = 10.0;
double y = 0.0;
double z = x / y;

Reszta kodu może zostać bez zmian. Uruchom program i przetestuj go.

Ponownie, komunikat o błędzie zostanie wyświetlony w oknie Output:

 

run:
Infinity
BUILD SUCCESSFUL (total time: 1 second)

This time, Java stops the programme because the result will be an infinitely large number.

Tym razem, Java zatrzymuje program, ponieważ wynik będzie nieskończenie wiele.

Błędy, które dotyczą liczb nie powinny tak naprawdę być obsługiwane przez "catch all"  obiektu Exception. Jest to szczególny typ zwany ArithmeticException. Usuń  słowo Exception w nawiasach okrągłych swojego bloku catch. Wymień go na ArithmeticException. Teraz ponownie uruchomić program.

Nie odczujesz żadnej różnicy w komunikacie o błędzie wyświetlanym w oknie Output. Ale używaj dobrych praktyk programowania poprzez zawężenie rodzaj błędu, którego można oczekiwać.

W kolejnej części dowiesz się, co to jest Stack Trace.

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.