Brug af Java-påstande

1. Introduktion

Java hævde nøgleord giver udviklere mulighed for hurtigt at kontrollere bestemte antagelser eller tilstand for et program.

I denne artikel vi ser på, hvordan du bruger Java hævde nøgleord.

2. Historie af Java-påstande

Java hævde nøgleord blev introduceret i Java 1.4, så det har eksisteret i et stykke tid. Det forbliver dog et lite kendt nøgleord, der kan reducere kedelpladen drastisk og gøre vores kode mere læselig.

For eksempel har vi ofte gange i vores kode brug for at kontrollere bestemte forhold, der kan forhindre vores applikation i at fungere korrekt. Typisk skriver vi noget som dette:

Forbindelse tilslut = getConnection (); if (conn == null) {throw new RuntimeException ("Connection is null"); }

Ved hjælp af påstande kan vi fjerne hvis og kaste erklæring med en enkelt hævde udmelding.

3. Aktivering af Java-påstande

Fordi Java-påstande bruger hævde nøgleord, der er ingen biblioteker nødvendige eller pakker at importere.

Bemærk, at det før Java 1.4 var helt lovligt at bruge ordet "assert" til navngivning af variabler, metoder osv. Dette skaber potentielt et navngivningskollision, når man bruger en ældre kode med nyere JVM-versioner.

Derfor, for bagudkompatibilitet, JVM deaktiverer påstandsvalidering som standard. De skal være eksplicit aktiveret ved hjælp af enten -aktivering af indstillinger kommandolinjeargument eller dens stenografi -ea:

java -ea com.baeldung.assertion.Assertion

I dette eksempel har vi aktiveret påstande for alle klasser.

Vi kan også aktivere påstande for specifikke pakker og klasser:

java -ea: com.baeldung.assertion ... com.baeldung.assertion.Assertion

Her har vi aktiveret påstande for alle klasser i com.baeldung.asstion pakke.

På samme måde kan de deaktiveres for specifikke pakker og klasser ved hjælp af -deaktivering af indstillinger kommandolinjeargument eller dens stenografi -da. Vi kan også bruge alle disse fire argumenter sammen.

4. Brug af Java-påstande

For at tilføje påstande, brug bare hævde nøgleord og giv det et boolsk tilstand:

offentlig tomrumsopsætning () {Connection connect = getConnection (); hævder konn! = null; }

Java giver også en anden syntaks for påstande, der tager en streng, som vil blive brugt til at konstruere Påstand Fejl hvis en smides:

offentlig tomrumsopsætning () {Connection connect = getConnection (); hævder konn! = null: "Forbindelsen er nul"; }

I begge tilfælde kontrollerer koden, at en forbindelse til en ekstern ressource returnerer en ikke-nul-værdi. Hvis denne værdi er nul, JVM vil automatisk kaste en Påstand Fejl.

I det andet tilfælde vil undtagelsen have den ekstra detalje, der vises i stacksporingen og kan hjælpe med fejlfinding af problemet.

Lad os se på resultatet af at køre vores klasse med påstande aktiveret:

Undtagelse i tråden "main" java.lang.AssertionError: Forbindelsen er nul ved com.baeldung.assertion.Assertion.setup (Assertion.java:15) ved com.baeldung.assertion.Assertion.main (Assertion.java:10)

5. Håndtering af en Påstand Fejl

Klassen Påstand Fejl strækker sig Fejl, som i sig selv strækker sig Kan kastes. Det betyder at Påstand Fejl er en ukontrolleret undtagelse.

Derfor er metoder, der bruger påstande, ikke påkrævet for at erklære dem, og yderligere opkaldskode bør ikke prøve at fange dem.

Påstand Fejl er beregnet til at indikere uoprettelige forhold i en applikation, så prøv aldrig at håndtere dem eller forsøg at gendanne.

6. Bedste fremgangsmåder

Det vigtigste at huske på påstande er, at de kan deaktiveres, så antag aldrig, at de bliver henrettet.

Husk derfor følgende ting, når du bruger påstande:

  • Kontroller altid for nulværdier og tomme Ekstraudstyr Hvor det er passende
  • Undgå at anvende påstande for at kontrollere input til en offentlig metode, og brug i stedet en ukontrolleret undtagelse som f.eks IllegalArgumentException eller NullPointerException
  • Ring ikke til metoder under påstandsbetingelser, og tildel i stedet resultatet af metoden til en lokal variabel, og brug den variabel med hævde
  • Påstande er gode til steder i koden, der aldrig vil blive udført, som f.eks Standard tilfælde af en kontakt erklæring eller efter en løkke, der aldrig slutter

7. Konklusion

Java hævde nøgleord har været tilgængeligt i mange år, men er stadig et mindre kendt træk ved sproget. Det kan hjælpe med at fjerne masser af kogepladekode, gøre koden mere læselig og hjælpe med at identificere fejl tidligt i programudviklingen.

Husk bare, at påstande ikke er aktiveret som standard, så antag aldrig, at de vil blive udført, når de bruges i koden.

Som altid er den fulde kildekode tilgængelig på GitHub.