La parola chiave assert in Java
-
Utilizzo di
assert
come condizione in Java -
Utilizzo di
assert condition : expression
in Java - per verificare se la parte irraggiungibile del codice è effettivamente irraggiungibile
- in caso di invarianti interni
In Java, puoi utilizzare la parola chiave assert
per abilitare le asserzioni. Questa funzione viene utilizzata per testare le nostre ipotesi sul programma. Ci sono due modi in cui possiamo usare le asserzioni in Java, e le affronteremo in questo articolo.
Utilizzo di assert
come condizione in Java
Un’asserzione è il modo più rapido e semplice per rilevare e correggere i bug in un programma. Si presume che un’asserzione sia vera quando viene eseguita. In caso contrario, genererebbe un errore di asserzione se è falso.
Qui, la condizione assert
è un’espressione booleana.
public class JavaAssertCheck {
public static void main(String args[]) {
String[] names = {"John", "Mary", "David"};
assert names.length == 2;
System.out.println("There are " + names.length + " names in an array");
}
}
Produzione
There are 3 names in an array
Le asserzioni sono disabilitate; quindi, questo programma verrà compilato ed eseguito senza mostrare alcun errore. Ma se le asserzioni sono abilitate e la condizione è falsa, JVM lancia immediatamente un AssertionError
e interrompe il programma.
Exception in thread
"main" java.lang.AssertionError at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Utilizzo di assert condition : expression
in Java
In questo formato di asserzione, l’espressione viene passata al costruttore di AssertionError
se la condizione viene valutata come falsa. Se le asserzioni sono abilitate e l’assunzione come mostrato di seguito è falsa, allora viene mostrato l’AssertionError
con l’espressione passata come messaggio dettagliato.
Questo messaggio aiuta a identificare correttamente l’errore e a correggere l’errore.
public class JavaAssertCheck {
public static void main(String args[]) {
String[] names = {"John", "Mary", "David"};
assert names.length == 2 : "The assertion condition is false.";
System.out.println("There are " + names.length + " names in an array");
}
}
Produzione
Exception in thread "main" java.lang.AssertionError
: The assertion condition is false.at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Qui, mostra alcune condizioni in cui possiamo utilizzare il concetto di asserzione in Java.
per verificare se la parte irraggiungibile del codice è effettivamente irraggiungibile
public void unReachableCode() {
System.out.println("Unreachable Code");
return;
assert true;
}
Se inserisci un presupposto in una posizione in cui ritenevi che il flusso non dovesse essere raggiunto, questa funzione richiederà un errore durante la rimozione dell’istruzione irraggiungibile.
in caso di invarianti interni
Prima che le asserzioni fossero disponibili, molti programmatori usavano i commenti per documentare le loro ipotesi sul programma. Come mostrato di seguito nell’istruzione if multidirezionale, potremmo voler scrivere qualcosa che spieghi la nostra ipotesi sul caso else.
public class JavaAssertCheck {
public static void main(String args[]) {
int n = 37;
if (n % 3 == 0)
System.out.println("n % 3 == 0");
else if (n % 3 == 1)
System.out.println("n % 3 == 1");
else
assert n % 3 == 2 : "Assumption is false. " + n;
}
}
Le asserzioni non dovrebbero essere usate nei metodi pubblici per controllare gli argomenti passati perché l’utente può fornirli da solo; pertanto, potrebbe non riuscire e portare a un AssertionError
. NON utilizzare asserzioni per gestire l’attività richiesta dall’applicazione per funzionare correttamente. Un esempio è la rimozione di elementi null da un elenco.
Di norma, l’espressione contenuta in un’asserzione dovrebbe essere priva di effetti collaterali.
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn