No vzhledem k tomu, ze By default, assertions are disabled at
runtime., tak bych rekl, ze ten Java assert slouzi spise pro
debugovani a testovani. Vsude, kde chceme mit kontroly i na produkci,
tak musime pouzit vlastni kod if ... throw. Tedy IMHO assert muze
obsahovat i narocny kod (prochazeni
Nicméně osobně používám proprietární třídu, která nabízí více kontrol,
umožňuje specifikovat classu výjimky a message formátuje podle pattern (příp.
s dodatečnými argumenty) až když dojde k chybě. Při hledání chyb už se to
mnohonásobně vrátilo.
Tomáš Záluský
A co takovoy tridu zverejnit
No ale, jestli se nepletu,v logovani mam obvykle typy: trace, debug,
info, error. Viz http://www.slf4j.org/api/org/slf4j/Logger.html
Asserty jsou typu error podle meho pocitu, tedy se vyhodnocuji vzdy, a
tudiz nepouzitelne.
Jedine, co me napada je zalozit si typ assert do logovani...
PP
On
Asi Ti moc nerozumím. To myslíš tak, že budeš na produkci testovat, zda
nevoláš metodu se špatnými parametry a pokud ano, tak vyhodíš výjimku? To
mi připadá na stejné úrovni jako chytání ArrayIndexOutOfBoundsException
pro případ, že bychom použili neplatný index pro přístup k poli.
Ne že by to
Než byl zaveden assert, používal jsem značky pro preprocesor
// DEBUG {
a
//DEBUG }
abych spoustu testu mel ve vyvojovem prostredi a nemusel je mit taky v
produkcnim.
V produkcnim jsem pak vyhazoval vsechno mezi tema dvema tagy.
Od doby assertu to neni nutne.
Dne 3. dubna 2011 15:31 Zdeněk