Java-beweringen gebruiken

1. Inleiding

De Java beweren trefwoord stelt ontwikkelaars in staat om snel bepaalde aannames of status van een programma te verifiëren.

In dit artikel, we zullen kijken hoe we de Java kunnen gebruiken beweren trefwoord.

2. Geschiedenis van Java-beweringen

De Java beweren trefwoord is geïntroduceerd in Java 1.4, dus het bestaat al een tijdje. Het blijft echter een weinig bekend trefwoord dat de standaardplaat drastisch kan verminderen en onze code leesbaarder kan maken.

In onze code moeten we bijvoorbeeld vaak bepaalde voorwaarden verifiëren die ervoor kunnen zorgen dat onze applicatie niet correct werkt. Meestal schrijven we zoiets als dit:

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

Met behulp van beweringen kunnen we de als en werpen verklaring met een enkele beweren uitspraak.

3. Java-beweringen inschakelen

Omdat Java-beweringen de beweren trefwoord, zijn er geen bibliotheken nodig of pakketten om te importeren.

Merk op dat vóór Java 1.4 het volkomen legaal was om het woord "assert" te gebruiken voor het benoemen van variabelen, methoden, enz. Dit kan mogelijk een naamgevingsclash veroorzaken bij het gebruik van een oudere code met nieuwere JVM-versies.

Daarom, voor achterwaartse compatibiliteit, de JVM schakelt standaard validatie van beweringen uit. Ze moeten expliciet worden ingeschakeld met behulp van de -inschakelbare beweringen opdrachtregelargument, of de afkorting ervan -ea:

java -ea com.baeldung.assertion.Assertion

In dit voorbeeld hebben we beweringen ingeschakeld voor alle klassen.

We kunnen ook beweringen inschakelen voor specifieke pakketten en klassen:

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

Hier hebben we beweringen ingeschakeld voor alle klassen in het com.baeldung.assertion pakket.

Evenzo kunnen ze worden uitgeschakeld voor specifieke pakketten en klassen met behulp van de - beweringen uitschakelen opdrachtregelargument, of de afkorting ervan -da. We kunnen ook alle vier deze argumenten samen gebruiken.

4. Java-beweringen gebruiken

Om beweringen toe te voegen, gebruik gewoon de beweren trefwoord en geef het een boolean staat:

public void setup () {Connection conn = getConnection (); beweren conn! = null; }

Java biedt ook een tweede syntaxis voor beweringen waaraan een tekenreeks moet doorgegeven worden, die zal worden gebruikt om het AssertionFout als er een wordt gegooid:

public void setup () {Connection conn = getConnection (); assert conn! = null: "Verbinding is nul"; }

In beide gevallen controleert de code of een verbinding met een externe bron een niet-nulwaarde retourneert. Als die waarde is nul, de JVM zal automatisch een AssertionFout.

In het tweede geval heeft de uitzondering de aanvullende details die in de stacktracering worden weergegeven en die kunnen helpen bij het opsporen van fouten in het probleem.

Laten we eens kijken naar het resultaat van het runnen van onze klas met ingeschakelde beweringen:

Uitzondering in thread "main" java.lang.AssertionError: Verbinding is nul op com.baeldung.assertion.Assertion.setup (Assertion.java:15) op com.baeldung.assertion.Assertion.main (Assertion.java:10)

5. Omgaan met een AssertionFout

De klas AssertionFout strekt zich uit Fout, die zich uitstrekt Gooibaar. Dit betekent dat AssertionFout is een ongecontroleerde uitzondering.

Daarom zijn methoden die beweringen gebruiken niet vereist om ze te declareren, en verdere aanroepende code moet niet proberen ze te vangen.

Bewering: fouten zijn bedoeld om onherstelbare omstandigheden aan te geven in een applicatie, dus probeer ze nooit af te handelen of te herstellen.

6. Beste praktijken

Het belangrijkste om te onthouden over beweringen is dat ze kunnen worden uitgeschakeld, dus ga er nooit vanuit dat ze zullen worden geëxecuteerd.

Houd daarom het volgende in gedachten bij het gebruik van beweringen:

  • Controleer altijd op null-waarden en leeg Optioneel waar passend
  • Gebruik geen beweringen om invoer in een openbare methode te controleren en gebruik in plaats daarvan een ongecontroleerde uitzondering zoals IllegalArgumentException of NullPointerException
  • Roep geen methoden aan in assertievoorwaarden en wijs in plaats daarvan het resultaat van de methode toe aan een lokale variabele en gebruik die variabele met beweren
  • Beweringen zijn geweldig voor plaatsen in de code die nooit zullen worden uitgevoerd, zoals de standaard geval van een schakelaar statement of na een lus die nooit eindigt

7. Conclusie

De Java beweren trefwoord is al vele jaren beschikbaar, maar blijft een weinig bekend kenmerk van de taal. Het kan helpen bij het verwijderen van veel standaardcode, de code leesbaarder maken en helpen bij het vroegtijdig opsporen van bugs bij de ontwikkeling van het programma.

Onthoud alleen dat beweringen niet standaard zijn ingeschakeld, dus ga er nooit vanuit dat ze worden uitgevoerd wanneer ze in de code worden gebruikt.

Zoals altijd is de volledige broncode beschikbaar op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found