Tvrzení by měla být použita ke kontrole něčeho, co by se nikdy nemělo stát, zatímco výjimka by měla být použita ke kontrole něčeho, co se může stát. Například funkce může být dělena nulou, takže by měla být použita výjimka, ale lze použít výraz pro kontrolu, že pevný disk náhle zmizí.
Je tvrzení dobré nebo špatné?
Ne, ani goto, ani claim nejsou zlé. Obojí se ale dá zneužít. Assert je pro kontroly zdravého rozumu. Věci, které by měly zabít program, pokud nejsou správné.
Proč jsou tvrzení špatná?
Tvrzení lze použít k ověření vnitřních implementačních invariantů, jako je vnitřní stav před nebo po provedení nějaké metody atd. Pokud se tvrzení nezdaří, ve skutečnosti znamená, že logika programu je porušena a vy nemůžete' z toho se nevzpamatuju.
Jsou tvrzení osvědčeným postupem?
Jazyková příručka uvádějící tvrzení obsahuje několik dobrých pokynů, které jsou v podstatě tím, co jsem právě popsal. Ano, je to dobrý postup. V případě Spring je to zvláště důležité, protože kontroly ověřují nastavení vlastností atd., která obvykle pocházejí ze souborů kabeláže XML.
V jakých případech jsou tvrzení užitečná?
Za předpokladu, že je kód řádně testován, aserce dělají několik užitečných věcí: Detekují drobné chyby, které by jinak mohly zůstat neodhaleny . Zjistit chyby dříve poté, co k nim dojde, než by mohly být jinak odhaleny. Učinit prohlášenío účincích kódu, který je zaručeně pravdivý.