Wyjątek OutOfMemoryError

0

Cześć,
implementując klasę kolejki opartej na liście jednokierunkowej napotykam się na problem. Mianowicie, chcę zrobić metodę, która sprawdza czy kolejka jest pełna. W tym celu dodaje nowy węzeł w bloku try - catch, catch mi łapie OutOfMemoryError. Moja metoda wygląda tak:

public boolean isFull()
{
	try
	{	
		if (!isNewNode) 
		{
			newNode = new Node();
			isNewNode = true;
		}
	}
	catch (OutOfMemoryError e)
	{
		return true;
	}
	return false;
}

Jednak gdy testuję tę klasę i dodaję bardzo dużo węzłów to program wyrzuca mi wyjątek OutOfMemoryError, tak jakby nie był on łapany w catch. Czy tego typu wyjątków nie mogę łapać? Dodam jeszcze, że pracuję na Ubuntu.

Pozdrawiam, Kysiek.

0

Ale ten drugi wyjątek wyrzuca w innym miejscu zapewne. A po co przechwytujesz wyjątek OutOfMemory skoro po jego wystąpieniu nie zwalniasz pamięci? Czego oczekujesz...

0

najpewniej wyjątek leci nie tam gdzie alokujesz węzły tylko w miejscu gdzie jvm coś sobie alokuje

1 użytkowników online, w tym zalogowanych: 0, gości: 1