Java hevder

Java hevder
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.

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;
hvis (i != null)
System.ute.Println ("Gjør dette.");
// Andre uttalelser
annet
System.ute.Println ("Test mislyktes.");

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/t

Der 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;
s = d / t;
hvis (s < 343)
System.ute.Println ("Gjør dette.");
// Andre uttalelser
annet
System.ute.Println ("Test mislyktes.");

Påstandssyntaks i Java

I Java er påstandssyntaksene i to former. De er:

hevde uttrykk1;
og
hevde uttrykk1: Expression2;

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;
hvis (i != null)
System.ute.Println ("Gjør dette.");
// Andre uttalelser
annet
System.ute.Println ("Test mislyktes.");

“Assister Expression1” kan brukes til denne koden som følger:

Heltall i = null;
hevde i != null;
System.ute.Println ("Gjør dette.");
// Andre uttalelser

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;
s = d / t;
hvis (s < 343)
System.ute.Println ("Gjør dette.");
// Andre uttalelser
annet
System.ute.Println ("Test mislyktes.");

"hevde uttrykk1" kan brukes til denne koden som følger:

dobbel d = 15, t = 3, s;
s = d / t;
hevde s < 343;
System.ute.Println ("Gjør dette.");
// Andre uttalelser

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;
hvis (i != null)
System.ute.Println ("Gjør dette.");
// Andre uttalelser
annet
System.ute.Println ("Test mislyktes.");

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;
hevde i != null: in;
System.ute.Println ("Gjør dette.");
// Andre uttalelser

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;
s = d / t;
hvis (s < 343)
System.ute.Println ("Gjør dette.");
// Andre uttalelser
annet
System.ute.Println ("Test mislyktes.");

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;
s = d / t;
hevde s < 343 : s;
System.ute.Println ("Gjør dette.");
// Andre uttalelser

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;
hevde i != null;
System.ute.Println ("Gjør dette.");
// Andre uttalelser

Anta at dette er i hovedmetoden () i hovedklassen og filen, kalt TheClass. Filen blir normalt satt sammen med kommandoen:

Javac theclass.Java

Samlingen skal gå gjennom vellykket. Med bryteren, det resulterende bytecode -programmet, TheClass.klasse, blir deretter kjørt på kommandolinjen med,

java -aNableAssertions theclass

Rapporten (output) vil være:

Unntak i tråden "Main" Java.lang.Påstand
på Theclass.Hoved (TheClass.Java: 6)

Merk 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;
hevde i != null: in;
System.ute.Println ("Gjør dette.");
// Andre uttalelser

Anta at dette er i hovedmetoden () i hovedklassen og filen, kalt TheClass. Filen blir samlet med kommandoen:

Javac theclass.Java

Samlingen skal gå gjennom vellykket. Med bryteren, det resulterende bytecode -programmet, TheClass.klasse, vil bli kjørt på kommandolinjen med,

java -aNableAssertions theclass

Rapporten (output) vil være:

Unntak i tråden "Main" Java.lang.AssertionError: NULL
på Theclass.Hoved (TheClass.Java: 6)

Legg 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.