naukaJavy.pl

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki
Home Kurs języka Java

Deklarowanie wyjątków

Email Drukuj

W artykule "Propagowanie wyjątków" zaimplementowaliśmy sobie metodę someOp(...) która rzucała wyjątek typu java.lang.RuntimeException. Wyjątki typu RuntimeException to tak zwane wyjątki niekontrolowane, a więc takie których nie musimy deklarować lub obsługiwać. W niniejszym artykule dowiemy się, co by było gdybyśmy chcieli zamiast wyjątku RuntimeException rzucać jakiś wyjątek kontrolowany, np. wyjątek typu java.lang.Exception.

Zerknijmy jeszcze raz na metodę someOp(...), w wersji takiej jaką znamy ze wspomnianego artykułu, a więc rzucającą wyjątek typu RuntimeException:

static void someOp(String[] args) {
if (args.length == 0)
throw new RuntimeException("Brak parametrów");

System.out.println("Za wyjątkiem w metodzie");
}

Aby móc zmienić typ wyjątku na wyjątek klasy Exception musimy dodać do deklaracji metody someOp(...) deklarację, że metoda ta rzuca wyjątek tego typu. Ogólna składnia takiej deklaracji jest następująca:

{deklaracja metody z listą argumentów} throws {lista wyjątków} {
{ciało metody}
}

Element {deklaracja metody z listą argumentów} to deklaracja jaką znamy. Po tej deklaracji umieszczamy słówko kluczowe throws i po nim listę typów wyjątków potencjalnie rzucanych przez tą metodę. Kolejne typy wyjątków wymieniamy rozdzielając je przecinkami. Metoda someOp(...) rzucająca wyjątek klasy Exception wyglądałaby więc następująco:

static void someOp(String[] args) throws Exception {
if (args.length == 0)
throw new Exception("Brak parametrów");

System.out.println("Za wyjątkiem w metodzie");
}

Co ważne, deklaracja wyjątków rzucanych przez metodę wcale nie oznacza że metoda ta zawsze zakończy się rzucając taki czy inny wyjątek. Jest to tylko informacja, że metoda ta może zakończyć się - w pewnych okolicznościach których znać nie musimy - jednym z wymienionych wyjątków.

Deklarując wyjątki rzucane przez metodę musimy podawać nazwę klasy poprzedzoną nazwą pakietu albo samą nazwę klasy jeśli klasę tę uprzednio zaimportowaliśmy. W powyższym przykładzie podaliśmy samą nazwę klasy, gdyż klasy z pakietu java.lang są importowane automatycznie. Więcej o importowaniu klas napisałem w artykule "Importowanie klas".

 

Wiadomości

Vishal Sikka, CTO w firmie SAP zaapelował o autentyczne, pełne przekazanie zarządzania rozwojem języka i platformy Java w ręce zrzeszenia firm działającego na zasadzie równoprawności - zrzeszenia nie zdominowanego przez firmę SUN, czy obecnie Oracle (SUN został kupiony przez Oracle).

Jednocześnie zaapelował o udostępnienie kodu źródłowego Maszyny Wirtualnej Javy na zasadach open-source.

SAP zdecydowany jest zainwestować znaczne środki w rozwój Javy, jeśli tylko postulaty te zostaną spełnione – dodał.

Reklama

Co to jest

Apache Lucene Java to biblioteka open-source napisana w języku Java. Lucene służy do implementacji mechanizmów wyszukiwania pełnotekstowego – taki mały Google, który możemy mieć we własnej aplikacji.


© Wszelkie prawa zastrzeżone dla Mariusza Lipińskiego

kontakt: mariusz.lipinski@naukajavy.pl | strona domowa: www.mariuszlipinski.pl