Che cos'è l'asserzione in Java? Come usare l'asserzione in Java
Pubblicato: 2021-05-20Sommario
Che cos'è l'asserzione in Java?
L'asserzione in Java viene utilizzata per garantire la correttezza delle ipotesi di qualsiasi programma poiché si presume che l'asserzione sia vera quando viene eseguita. La Java Virtual Machine genera un errore denominato AssertionError se l'asserzione è falsa. L'affermazione in Java ha trovato la sua applicazione principalmente a scopo di test. Le espressioni booleane vengono utilizzate insieme alle dichiarazioni di asserzione. Un'asserzione è un'istruzione e la parola chiave 'asset' viene utilizzata per eseguire un'asserzione in Java.
Sintassi
Di seguito sono riportati due modi in cui l'asserzione viene eseguita in Java:
1. affermare l'espressione;
2. asserire espressione1: espressione2;
Come utilizzare l'asserzione in Java?
Le asserzioni sono disabilitate in Java per impostazione predefinita. Il comando seguente viene utilizzato per abilitarli:
java -ea test
(o)
java -enableassertions Test
dove Test è il nome del file Java.
Ecco un esempio per dimostrare la sintassi dell'asserzione:
prova di classe pubblica
{
public static void main(String[] args)
{
valore int = 13;
asserire valore <= 12 : "Non teenager";
System.out.println(“L'età dell'adolescente è ” + valore);
}
}
Produzione
Ecco un esempio per la generazione di un errore di asserzione da parte della Java Virtual Machine:
Prova di classe
{
public static void main( String args[] )
{
peso int = 30;
affermare peso >= 20 : ” Sovrappeso”;
System.out.println("Il peso è "+valore);
}
}
Produzione
Dopo aver abilitato le asserzioni,
Produzione
Eccezione nel thread "main" java.lang.AssertionError: Overweight
Ecco come appare:
Fonte
Perché usare le asserzioni?
L' asserzione in Java viene utilizzata per:
- Verificare se le ipotesi fatte dal programmatore sono corrette o meno.
- Assicurati che se il codice sembra irraggiungibile, è irraggiungibile.
- Conferma che le ipotesi scritte nei commenti sono corrette, ad esempio:
se ((y & 1) == 1)
{ }
altrimenti // y deve essere pari
{ asserire (y % 2 == 0); }
- assicurarsi che il caso dell'interruttore predefinito non venga raggiunto
- controllare lo stato dell'oggetto
L'asserzione in Java viene utilizzata all'inizio del metodo e dopo l'invocazione del metodo.
Dove usare le asserzioni?
L'asserzione in Java viene utilizzata nei casi condizionali e quando le condizioni si trovano all'inizio di qualsiasi metodo. Inoltre, nel caso di argomenti su metodi privati. Il codice dello sviluppatore fornisce argomenti privati e quando il programmatore deve verificare le proprie ipotesi sugli argomenti.
Ecco alcune situazioni in cui l'uso di asserzioni dovrebbe essere evitato:
- Secondo le specifiche fornite da Sun Microsystems, l'asserzione non dovrebbe essere utilizzata durante il controllo degli argomenti nei metodi pubblici perché ciò comporterebbe eccezioni di runtime appropriate come NullPointerException e IllegalArgumentException.
- Non dovrebbe essere utilizzato in sostituzione dei messaggi di errore.
- Se non vuoi che si verifichino errori in nessuna situazione, salta usando l'asserzione.
- Non dovrebbe essere usato su argomenti della riga di comando.
- Se l'utente fornisce errori, le asserzioni non devono essere utilizzate per controllare gli argomenti nei metodi pubblici. Invece, dovrebbe essere utilizzata la gestione degli errori.
Come disabilitare le asserzioni?
I seguenti comandi vengono utilizzati per disabilitare l' asserzione in Java:
java –da Test
o
java – disableassertions Test
dove Test è il nome del file Java.
Modi per utilizzare l'asserzione in Java
Esempio 1: asserzione Java
classe pubblica Principale {
public static void main(String args[]) {
String[] giorni feriali = {“Lun”, “Mar”, “Mer”,”Gio”,”Ven”};
assert weekdays.length == 2;
System.out.println(“Ci sono ” + weekdays.length + ” giorni feriali in una settimana”);
}
}
Produzione
Il seguente output si ottiene quando le asserzioni sono disabilitate e il programma non ha errori di compilazione.
Quando le asserzioni sono abilitate, otterremo il seguente output:
Eccezione nel thread "main" java.lang.AssertionError
C'è un'altra forma di dichiarazione di asserzione che è la seguente:
asserire condizione: espressione;
Questa forma di istruzione di asserzione ha un'espressione che viene passata al costruttore dell'oggetto AssertionError. Se la condizione è falsa, questa espressione ha un valore visualizzato come messaggio di dettaglio dell'errore. Per aiutare nel debug del problema, il massaggio dettagliato acquisisce e trasmette le informazioni sull'errore dell'asserzione.
Esempio 2: asserzione Java con esempio di espressione
classe pubblica Principale {
public static void main(String args[]) {
String[] giorni feriali = {“Lun”, “Mar”, “Mer”,”Gio”,”Ven”, “Sab”};
assert weekdays.length == 5: “Ci sono solo 5 giorni della settimana in una settimana”;;
System.out.println(“Ci sono ” + weekdays.length + ” giorni feriali in una settimana”);
}
}
Produzione
Eccezione nel thread "main" java.lang.AssertionError: ci sono solo 5 fine settimana in una settimana
Come mostrato nell'esempio precedente, l'espressione viene passata al costruttore dell'oggetto AssertionError. Poiché le asserzioni sono abilitate e l'assunzione è falsa, viene visualizzato un messaggio appropriato quando viene generata un'eccezione. Il messaggio aiuta a diagnosticare e correggere l'errore che ha causato il fallimento dell'asserzione.
Impara i corsi di ingegneria del software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Conclusione
In questo blog hai imparato come usare le asserzioni per testare la logica del programma. Hai anche imparato perché le asserzioni non possono essere utilizzate come sostituti delle eccezioni e hai visto situazioni in cui l'utilizzo di un'eccezione sarebbe più efficace della gestione delle eccezioni.
Se stai cercando di saperne di più su Java e avanzare nella tua carriera di programmatore, esplora i corsi Java online gratuiti di upGrad, la più grande azienda indiana di istruzione superiore online. Visita upGrad per maggiori informazioni.
Se sei interessato a saperne di più su Java, lo sviluppo di software full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, 9+ progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.
Che cos'è l'asserzione in Java?
Nel linguaggio di programmazione Java, l'asserzione è un metodo utilizzato per garantire che alcuni requisiti debbano essere seguiti. L'errore di asserzione in Java è considerato un errore di compilazione, cioè se ci sono delle asserzioni nel tuo codice, il codice non verrà compilato e riceverai un messaggio di errore. Questa funzionalità di Java consente di proteggere il codice da errori di runtime imprevisti o indesiderati. L'istruzione Java assert ti consente di testare le invarianti del tuo programma in fase di esecuzione. Le asserzioni vengono normalmente utilizzate per verificare che il codice non stia entrando in uno stato non valido. In altre lingue potresti vedere i metodi di contratto o le condizioni pre/post utilizzate a questo scopo.
Come gestire le eccezioni in Java?
Un'eccezione è un errore di runtime, il che significa che si verifica durante l'esecuzione del programma, non durante la compilazione. L'eccezione viene generata quando si verifica un errore e il programma non può continuare. Puoi gestire le eccezioni in tre modi diversi: Ignora l'eccezione e consenti al programma di uscire. Utilizzare la parola chiave throw per generare nuovamente l'eccezione. Utilizzare il blocco try-catch per gestire l'eccezione. È possibile registrare o stampare l'eccezione e quindi lasciare che il programma esca. È possibile utilizzare la parola chiave exit per terminare il programma. È possibile utilizzare la parola chiave throw per generare nuovamente l'eccezione. È possibile utilizzare il blocco try-catch per gestire l'eccezione. C'è un blocco catch che accetta l'eccezione nel suo argomento. C'è un blocco finally che viene eseguito indipendentemente dal fatto che venga generata un'eccezione.
Come funziona try-catch in Java?
try-catch è un meccanismo in Java che consente di definire un ambito in cui è possibile gestire gli errori di runtime in modo controllato. Garantisce inoltre che il flusso di esecuzione non si interrompa completamente quando si verifica un errore. try e catch sono due parole chiave utilizzate per implementare la gestione delle eccezioni. Ogni volta che si verifica un errore nel programma, il blocco try verrà eseguito e l'errore verrà quindi gestito dal blocco catch.