Používanie výrazov Java

1. Úvod

Java tvrdiť kľúčové slovo umožňuje vývojárom rýchlo overiť určité predpoklady alebo stav programu.

V tomto článku sa pozrieme na to, ako používať Javu tvrdiť kľúčové slovo.

2. História tvrdení Java

Java tvrdiť kľúčové slovo bolo zavedené v prostredí Java 1.4, takže je tu už pomerne dlho. Zostáva však málo známym kľúčovým slovom, ktoré môže drasticky znížiť štandardný štandard a zvýšiť čitateľnosť nášho kódu.

Napríklad v našom kóde často potrebujeme overiť určité podmienky, ktoré môžu brániť správnej funkcii našej aplikácie. Spravidla by sme napísali niečo také:

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

Pomocou tvrdení môžeme odstrániť ak a hodiť vyhlásenie s jediným tvrdiť vyhlásenie.

3. Povolenie výrazov Java

Pretože tvrdenia Java používajú znak tvrdiť kľúčové slovo, nie sú potrebné žiadne knižnice ani balíky na import.

Upozorňujeme, že pred programom Java 1.4 bolo úplne legálne používať slovo „assert“ na pomenovanie premenných, metód atď. Toto potenciálne vytvára stret s pomenovaním pri použití staršieho kódu s novšími verziami JVM.

Z dôvodu spätnej kompatibility preto JVM štandardne zakazuje overovanie tvrdení. Musia byť výslovne povolené pomocou buď - povolené inzercie argument príkazového riadku alebo jeho skratka -ea:

java -ea com.baeldung.assertion.Assertion

V tomto príklade sme povolili tvrdenia pre všetky triedy.

Môžeme tiež povoliť tvrdenia pre konkrétne balíčky a triedy:

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

Tu sme povolili tvrdenia pre všetky triedy v com.baeldung.assertion balíček.

Rovnako je možné ich zakázať pre konkrétne balíčky a triedy pomocou - deaktivácie inzercie argument príkazového riadku alebo jeho skratka -da. Všetky tieto štyri argumenty môžeme použiť aj spoločne.

4. Používanie výrazov Java

Ak chcete pridať tvrdenia, jednoducho použite tvrdiť kľúčové slovo a dajte mu a boolovský stav:

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

Java tiež poskytuje druhú syntax pre tvrdenia, ktoré zaberajú reťazec, ktorý sa použije na vytvorenie súboru AssertionError ak je niekto hodený:

public void setup () {Connection conn = getConnection (); assert conn! = null: "Pripojenie je null"; }

V oboch prípadoch kód kontroluje, či pripojenie k externému prostriedku vráti hodnotu, ktorá nemá hodnotu null. Ak je táto hodnota nulový, bude JVM automaticky hodí AssertionError.

V druhom prípade bude mať výnimka ďalšie podrobnosti, ktoré sa zobrazia v sledovaní zásobníka a môžu pomôcť pri ladení problému.

Pozrime sa na výsledok fungovania našej triedy so zapnutými tvrdeniami:

Výnimka vo vlákne „main“ java.lang.AssertionError: Pripojenie je neplatné na adrese com.baeldung.assertion.Assertion.setup (Assertion.java:15) na adrese com.baeldung.assertion.Assertion.main (Assertion.java:10)

5. Zaobchádzanie s AssertionError

Trieda AssertionError predlžuje Chyba, ktorá sa sama rozširuje Hoditeľné. To znamená, že AssertionError je nekontrolovaná výnimka.

Preto sa na ich deklaráciu nevyžadujú metódy, ktoré používajú tvrdenia, a ďalšie volajúce kódy by sa nemali pokúšať ich chytiť.

AssertionErrors znamenajú nenahraditeľné podmienky v aplikácii, tak sa s nimi nikdy nepokúšajte manipulovať alebo sa pokúšať o zotavenie.

6. Najlepšie postupy

Najdôležitejšie je mať na pamäti tvrdenia, že môžu byť zdravotne postihnuté, takže nikdy nepredpokladajte, že budú popravení.

Pri používaní tvrdení preto nezabudnite na nasledujúce veci:

  • Vždy skontrolujte, či nie sú nulové hodnoty a či nie sú prázdne Voliteľné podľa potreby
  • Vyhnite sa používaniu tvrdení na kontrolu vstupov do verejnej metódy a namiesto toho používajte nekontrolovanú výnimku, ako je napr IllegalArgumentException alebo NullPointerException
  • Nevolajte metódy v podmienkach tvrdenia a namiesto nich priraďte výsledok metódy k miestnej premennej a použite túto premennú s tvrdiť
  • Tvrdenia sú skvelé pre miesta v kóde, ktoré sa nikdy nespustia, ako napríklad predvolené prípad a prepínač príkaz alebo po cykle, ktorý sa nikdy nedokončí

7. Záver

Java tvrdiť kľúčové slovo je k dispozícii už mnoho rokov, zostáva však málo známou vlastnosťou jazyka. Môže pomôcť odstrániť veľa štandardných kódov, zvýšiť čitateľnosť kódu a pomôcť pri identifikácii chýb na začiatku vývoja programu.

Pamätajte, že tvrdenia nie sú predvolene povolené, takže nikdy nepredpokladajte, že sa vykonajú, keď sa použijú v kóde.

Celý zdrojový kód je ako vždy k dispozícii na serveri GitHub.