Påstanden forventes å bli brukt i et program der programmereren mistenker at en slik tilstand kan eksistere. Hvis påstandserklæringen brukes, og tilstanden ikke skjer feil, vil programmet fortsette uten noe problem. Hvis tilstanden skjer feil, rapporteres en feilmelding. Slik kontroll innebærer et boolsk uttrykk. Påstandskoding må selvfølgelig ikke nødvendigvis involvere det forbeholdte ordet. Det er mange gode programmer som gjør påstandskoding uten det reserverte ordet. Å bruke Asservert Reserved Word får imidlertid frem et bestemt trekk i programmering, noe som gjør programmet mer konstruktivt.
Tenk på følgende kodesegment:
Heltall i = null;Foreløpig er verdien av "in" null, men det kan være ethvert heltall. IF-Bock vil bli henrettet hvis den ikke er null, noe som bør betraktes som bra. Hvis det er null (falsk), vil den andre delen av IF-sammensatte uttalelse bli utført, og rapporterer om problemet.
Nå kan en påståserklæring erstatte de fleste deler av if-compound-uttalelsen. Dette er en klassisk bruk av Asserce -uttalelsen. En annen klassisk bruk er å sjekke om grensen for resultatet av en beregning ikke ble nådd, ettersom følgende beskrivelse presenterer:
Hastigheten til et bevegelig objekt er gitt av,
s = d/tDer D er avstand, er T tiden tatt, og S er resultatet (hastighet). Det kan være ønsket at hastigheten på objektet holder seg under lydhastigheten og derfor ikke forårsaker sjokkbølger. I dette tilfellet kan påstandserklæringen brukes til å hevde at hastigheten er under lydhastigheten, som er 343 m/s.
En programkode for dette problemet, uten påstandserklæringen, kan være som følger:
dobbel d = 15, t = 3, s;Påstandssyntaks i Java
I Java er påstandssyntaksene i to former. De er:
hevde uttrykk1;For det første alternativet (uttalelse) er Expression1 et boolsk uttrykk. Merk: tilsvarer, i et boolsk uttrykk er ==, fordi, i databehandling, = betyr tildeling mens == betyr likhet. For det andre alternativet (uttalelse) er Expression1 fremdeles et boolsk uttrykk; Men Expression2 resulterer i en verdi, som kanskje ikke er boolsk (sant eller usant). Verdien må imidlertid ikke være ugyldig. Formålet med Expression2 er for å sende inn feilen til programmereren eller brukeren. I dette andre alternativet skiller tykktarmen de to uttrykkene. Tykktarmen gjelder ikke for det første alternativet.
Enten påstanderklæring betyr til slutt sann eller usant på grunn av det boolske uttrykket. Hvis det er sant, fortsetter programmet som forventet. Hvis det er usant, skal feilen rapporteres.
hevde uttrykk1
Validering
Eksempelkoden for validering ovenfor, gjentas her for rask (visuell) referanse:
Heltall i = null;“Assister Expression1” kan brukes til denne koden som følger:
Heltall i = null;Hvis påstanden er aktivert for programmet, og hvis påstanden hevder å være usant, som for denne spesielle kodingen, vil ikke uttalelsene under påstandserklæringen bli utført; Og Java Virtual Machine (OS) vil utstede en feilmelding. Hvis påstanden ikke er aktivert for programmet, vil uttalelsene under påstandserklæringen bli utført, til tross for at de er falske. Se hvordan du aktiverer påstand for et program nedenfor.
For denne påstandskodingen lar programmereren JVM håndtere feilmeldinger helt på grunn av fraværet av Expression2.
Forhindrer rekkevidde av grensen
Eksempelkoden for å forhindre rekkevidde ovenfor, gjentas her for rask (visuell) referanse:
dobbel d = 15, t = 3, s;"hevde uttrykk1" kan brukes til denne koden som følger:
dobbel d = 15, t = 3, s;Hvis påstanden er aktivert for programmet, vil for denne spesielle koding, uttalelsene under påstandsuttalelsen bli utført, og Java Virtual Machine (OS) ville ikke utstede en feilmelding; Siden resultatet av 5 er mindre enn 343. Hvis påstanden ikke er aktivert, vil uttalelsene under påstandserklæringen fortsatt bli utført fordi de vil bli ignorert selv om det er usant. Se hvordan du aktiverer påstand for et program nedenfor.
For denne påstandskodingen tillater programmereren fortsatt JVM å håndtere feilmeldinger helt; På grunn av fraværet av Expression2.
Expression2
Validering
Eksempelkoden for validering ovenfor, gjentas her for rask (visuell) referanse:
Heltall i = null;Expression2 er for feilrapportering. Den andre delen av denne if-compound-uttalelsen er for feilrapportering. En tilsvarende bruk av det andre alternativet hevder uttalelse, for denne kodingen, kan være som følger:
Heltall i = null;Hvis påstanden er aktivert for programmet, vil ikke for denne spesielle kodingen under Asserce -setningen bli utført, og Java Virtual Machine (OS) vil utstede en feilmelding. Denne gangen vil feilmeldingen bruke variabelenes verdi, i. Hvis påstanden ikke er aktivert, vil uttalelsene nedenfor påståserklæringen bli utført, til tross for at påstandsuttalelsen resulterer i falsk. Se hvordan du aktiverer påstand for et program nedenfor.
For denne påstandskodingen påvirker programmereren JVM i sin håndtering av feilmeldinger på grunn av tilstedeværelsen av Expression2 (in) - se detaljer nedenfor.
Forhindrer rekkevidde av grensen
Eksempelkoden for å forhindre rekkevidde ovenfor, gjentas her for rask (visuell) referanse:
dobbel d = 15, t = 3, s;Expression2 er for feilrapportering. Den andre delen av denne if-compound-uttalelsen er for feilrapportering. En tilsvarende bruk av det andre alternativet hevder uttalelse, for denne kodingen, kan være som følger:
dobbel d = 15, t = 3, s;Hvis påstanden er aktivert for programmet, vil for denne spesielle koding, uttalelsene under påstandsuttalelsen bli utført, og Java Virtual Machine (OS) vil ikke utstede en feilmelding; Siden resultatet av 5 er mindre enn 343. Hvis resultatet (verdien) av S er lik eller større enn 343, vil feilmeldingen involvere verdien av S. Hvis påstanden ikke er aktivert, vil uttalelsene under påstandserklæringen fortsatt bli utført fordi de vil bli ignorert selv om de resulterer i falske. Se hvordan du aktiverer påstand for et program nedenfor.
For denne påstandskodingen påvirker programmereren JVM i å håndtere feilmeldinger på grunn av Expression2 (er) - se detaljer nedenfor.
Aktivering av påstand
Hvis et program har påstandskoding, vil påstandserklæringen bare være effektivt for å respektere påstandserklæringen hvis programmet er aktivert. Aktivering av påstandserklæringen gjøres etter at Java -programmet er blitt samlet til bytecode. Dette gjøres på kommandolinjen når du utfører programmet. Det gjøres ved å inkludere bryteren -enableAssertions. Med brytere på kommandolinjen betyr ikke - ikke "ta bort"; Det er en bindestrek (kule).
Bruken av bryteren fungerer bare for utførelse av programmet. Hvis bryteren ikke brukes, vil neste gang programmet blir kalt, utførelsen ignorerer påstandserklæringen.
I denne delen vil bare koden for validering bli adressert. Valideringskoden med det første alternativet hevder uttalelse er:
Heltall i = null;Anta at dette er i hovedmetoden () i hovedklassen og filen, kalt TheClass. Filen blir normalt satt sammen med kommandoen:
Javac theclass.JavaSamlingen skal gå gjennom vellykket. Med bryteren, det resulterende bytecode -programmet, TheClass.klasse, blir deretter kjørt på kommandolinjen med,
java -aNableAssertions theclassRapporten (output) vil være:
Unntak i tråden "Main" Java.lang.PåstandMerk at det ikke er nevnt verdien, null, for variabelen, "inn" ved utgangen. Med dette blir ikke uttalelsene nedenfor påståserklæringen i programmet utført.
Valideringskoden med det andre alternativet hevder uttalelse, som har “: in” er:
Heltall i = null;Anta at dette er i hovedmetoden () i hovedklassen og filen, kalt TheClass. Filen blir samlet med kommandoen:
Javac theclass.JavaSamlingen skal gå gjennom vellykket. Med bryteren, det resulterende bytecode -programmet, TheClass.klasse, vil bli kjørt på kommandolinjen med,
java -aNableAssertions theclassRapporten (output) vil være:
Unntak i tråden "Main" Java.lang.AssertionError: NULLLegg merke til at det er omtale av verdien, null, for variabelen, "inn" ved utgangen, som ": null" i den første utgangslinjen. Med dette blir uttalelsene nedenfor påstandserklæringen i programmet fremdeles ikke utført på grunn av muliggjøring av noen påstandserklæring i programmet. Hvis bryteren, -nableAssertions, er utelatt på kommandolinjen, vil noen (eller alle) hevde uttalelser i programmet bli ignorert. Koden nedenfor vil den fortsatt bli utført, selv om påstandsuttalelsene (boolske uttrykk) er falske.
Konklusjon
Påstand i Java er en uttalelse basert på det reserverte ordet, hevder, har et boolsk uttrykk og slutter med en semikolon. Det hender at visse forhold i et program kan forhindre at det fungerer som den skal. Påstandserklæringen sjekker om slike forhold eksisterer i et program.
Gode eksempler for bruk av Asserce -uttalelsen er i validering og for å sjekke om resultatet av en beregning ikke krysser en grense. Det er to former for Asserce -uttalelsen: den ene som ikke hjelper til i feilmeldingen, og den andre som hjelper til i feilmeldingen. En påstand i Java er aktivert på kommandolinjen, for den kompilerte bytecode, med bryteren, -iableAssertions.