[Java] Obsługa wyjątków

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
bulva
Sędziwy Jeż
Sędziwy Jeż
Posty: 60
Rejestracja: 28 wrz 2009, 12:40
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

[Java] Obsługa wyjątków

Post autor: bulva »

Mam następująca metodę wyrzucającą RuntimeException:

Kod: Zaznacz cały

	public static int getIntegerNodeAttribute(Node node, String attributeName) {
		if (node.getAttribute(attributeName) == null) {
			throw new RuntimeException("Attribute, " + attributeName
					+ ", missing from node");
		}
		return (Integer) node.getAttribute(attributeName);
	}
Następnie wywołuję ją w pewnej klasie X, która ma blok try-catch z instrukcją throw, aby przekazać wyjątek dalej:

Kod: Zaznacz cały

			} catch (Exception e) {

				e.printStackTrace();
				throw new RuntimeException("FUBAR!", e);
			}
Ta klasa jest z kolei wywoływana w GUI, które powinno pokazywać wyjątek w małym terminalu:

Kod: Zaznacz cały

			catch (RuntimeException e2) {
				textArea.setText("Attribute missing from node");
			}

			catch (Exception e1) {
				textArea.setText("Could not generate!");
			} 
Cały ten misterny plan jednak nie działa, ponieważ gui nic nie wyświetla, program chodzi sobie w najlepsze mimo iż konsola wyraźnie pokazuje
java.lang.RuntimeException: Attribute, location_80%HPD_modality, missing from node
Czyli wyjątek z klasy X nie jest dalej przekazywany, skoro blok catch w gui go nie wychwytuje. Czemu?
michal12345
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 119
Rejestracja: 13 cze 2007, 20:57
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: [Java] Obsługa wyjątków

Post autor: michal12345 »

O ile pamiętam nie można wyrzucać wyjątków w bloku catch.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 19 gości