? Java tilføjede " hævde " søgeord for at gøre det lettere at opdage og rapportere fejl i Java 1.4. Påstande programmet lov til at angive en betingelse , at den forventer at være sandt. Såfremt betingelsen mislykkes , programmet rapporterer en fejl , som skal håndteres . Assertion Syntaks
syntaks for en påstand er meget enkel : Hej
hævde CODE
Koden skal evaluere enten sande eller falske. Hvis det er sandt , så programmet fortsætter som sædvanlig. Hvis falsk, så en AssertionError kastes . På denne måde gør påstanden søgeord en programmør til at gøre påstande om programmets tilstand på bestemte punkter og identificere tidspunkter, hvor programmet passerer ind , at der ikke er tilladt .
Hvornår skal man bruge Påstande < br >
Påstande bør anvendes til at kontrollere invarianter , eller situationer, som programmøren mener aldrig vil forekomme . Nedenstående eksempel på en påstand om tilstanden af en mønt er et eksempel på en invariant . Ved at bruge påstande til at kontrollere invarianter , opnår programmører to ting. Først, de giver en måde for programmet til at mislykkes , hvis invariant viser sig at være falske grundet hukommelse korruption. For det andet, de giver en letlæselig måde for programmøren at vise andre programmører de forudsætninger , der findes i hans kode.
Problemer
Det centrale problem med påstande kan spores tilbage til den omstændighed, at de er en valgfri funktion . Af forskellige grunde kan klientmaskiner vælger at køre programmet med påstande slukket. Dette har en række virkninger . Først kan programmøren ikke sætte nogen kode i en antagelse , der ændrer tilstanden af programmet, da denne kode ikke længere ville blive kørt , hvis en påstand mislykkedes. For det andet kan programmøren aldrig antage, at påstande vil blive evalueret . Det betyder, at argumentet kontrol for metoder bør stadig udføres ved hjælp af gamle undtagelser system, som aldrig kan blive deaktiveret. Endelig er en ny søgeordet " hævde " er blevet tilføjet til sprog, kan variablerne i gamle kode ikke have navnet " hævde ".
Assertion Eksempel
Overvej følgende kode : Hej
hævde ( mønt == HEADS