( sz332 | 2013. 02. 06., sze – 22:48 )

Nem ugyanarról beszélünk. Nem egymás melletti szintekről, hanem egymás
alatti szintekről.

A kérdés az, hogy mondjuk elszáll a termék lekérdezés egy adatbázis hiba miatt. Akkor mit csinálsz?

Ami szerintem a logikus:

class ProductLogicImplementation implements IProductLogic{

public void getProduct(int id) throws ProductNotAvailableException{

try{
return dao.getProduct(id);
} catch (SQLException e){
throw new ProductNotAvailabeException(e);
}
}

}

Az nem logikus, hogy tetszőleges Exception-t továbbdobunk, hogy aztán majd
a felső réteg lekezelje:

public void getProduct(int id) throws SQLExeption{...}

Mivel pl. semmi nem garantálja, hogy a jó eséllyel interfaceként hivatkozott
osztályból pont SQLException fog jönni, hiába dobja egy konkrét implementáció
éppen azt.

Erre most jöttem rá, de hát végülis jobb későn, mint soha :)