Cos'è un assertionerror in Python?
Gli errori di asserzione sono un concetto di programmazione che si verifica quando un programmatore scrive o crea un blocco di codice utilizzato per dichiarare un criterio o una condizione da soddisfare prima che il modulo venga eseguito. Come ogni errore di Python, il controllo viene trasferito nella successiva riga di codice se la condizione specificata quando l'asserzione è stata dichiarata vera. Se è falso, d'altra parte, viene sollevato un errore o un'eccezione e il programma viene interrotto. L'istruzione Assert può essere utilizzata in vari linguaggi di programmazione con le loro sintassi specifiche perché è indipendente dal linguaggio. È una sottoclasse o un'istanza della classe di eccezione. Python AssertionError ha la seguente sintassi:
Sintassi: ASSERT CONDIZIONE, ERROR_MESSAGE (opzionale)
Esempio
Entreremo come input di una persona come input e se è inferiore a zero, la console aumenterà un errore di asserzione.
Ora, cosa succede se entriamo con un'età inferiore a 0?
Il debug del codice utilizzando questo metodo è più semplice, rendendo così più semplice trovare errori e correggere i bug nel programma.
Come funziona AssertionError in Python
Il linguaggio Python include un'istruzione Assert che può essere utilizzata per generare semplici output di messaggi di errore con asserzioni logiche. Quando la dichiarazione di asserzione non riesce, viene sollevata un'asserzione "eccezione". In Python, le classi di eccezione sono derivate dalla classe Baseexception. La classe Baseexception, che è anche la classe base della classe Assertionerror, è da dove deriva la classe di eccezione. Dovrebbe esserci sempre un codice di gestione delle eccezioni appropriato per gestire il fallimento di un'istruzione Assert ogni volta che viene utilizzata. Il gestore delle eccezioni predefinito in Python stamperà il messaggio di errore scritto dal programmatore, ma l'errore può anche essere gestito o risolto senza un messaggio di errore.
Implementazione di AssertionError in Python
Di seguito sono riportati diversi esempi di assertionerror in Python:
Esempio
In questo esempio, scriveremo un programma Python per visualizzare un Assertionerror in un programma che trova l'area di un cerchio.
Il valore "R" del raggio viene passato come input a una funzione nel programma precedente che viene creata per trovare l'area del cerchio. L'istruzione Assert viene quindi utilizzata per determinare se il valore fornito o il raggio "R" è inferiore allo zero e se viene fornito un valore negativo, verrà sollevata un'eccezione. L'area del cerchio verrà restituita in base al valore del raggio "R" fornito alla funzione. Innanzitutto, la funzione viene eseguita con un valore di R come 3. La funzione viene quindi eseguita con il valore 2.5. L'asserzione viene raccolta quando utilizziamo un valore negativo di "r", i.e., "-1".
Proviamo un altro esempio per visualizzare il verificarsi di un errore di asserzione.
Esempio
In questo esempio, il programma determinerà se il valore del denominatore è diverso da zero.
Il messaggio di errore dell'errore di asserzione viene visualizzato nel programma precedente. Abbiamo creato due variabili (a e b) e i valori interi specificano le variabili. La seconda variabile, i.e., B viene quindi testato per vedere se non è uguale a 0 usando l'istruzione Assert. Altrimenti specificato, il messaggio di errore viene stampato. In caso contrario, viene visualizzato il risultato della divisione del primo numero per il secondo valore. Nell'immagine precedente, viene visualizzato l'output del programma.
Applicazioni di AssertionError
Gli altri usi benefici dell'errore di asserzione includono:
Come possiamo evitare gli errori di asserzione in Python
Gestione dell'asserzione
Oltre alla dichiarazione di asserzione, possiamo anche gestire l'errore di asserzione usando i seguenti metodi:
Gestione dell'errore di asserzione utilizzando i blocchi di prova eccesso
L'istruzione Assert determina se i valori sono uguali. Il blocco di prova solleva l'errore AssertionError perché questi numeri interi non sono uguali. Il comando di stampa viene eseguito dopo che il blocco tranne ha preso l'eccezione. Qui, viene visualizzata l'output dell'istruzione di stampa dal blocco di eccezione. La parola chiave di allevamento può essere utilizzata per eseguire l'errore nel blocco tranne in modo da poter determinare la sorgente dell'eccezione. Quando si verifica un'eccezione, la parola chiave "sollevare" aumenterà un errore e terminerà il programma. Aiuta a mantenere o mantenere un record/traccia dell'eccezione esistente.
Gestione di AssertionError usando il modulo Traceback
Quando il codice contiene diverse istruzioni di assert, il modulo Traceback aiuta a identificare l'origine esatta dell'errore.
Usando il modulo Traceback, la nostra istruzione di stampa può essere scritta con segnaposto .
Inoltre, possiamo definire altre variabili per archiviare la posizione della linea, il nome del file, il nome del metodo, nonché il testo/messaggio in cui si è verificata l'eccezione.
L'oggetto Traceback viene definito "TB". Usiamo due segnaposto: uno per il testo e uno per la posizione della riga nell'istruzione di stampa.
I tre componenti dell'affermazione "aumenta" - Exc_type, Exc_traceback e Exc_value - vengono restituiti dal sistema.funzione Exc_info ().
Gestire l'asserzione utilizzando l'istruzione di stampa
Per gestire manualmente un'eccezione, possiamo utilizzare l'istruzione "stampa" all'interno del blocco tranne.
L'istruzione di stampa stampa qualsiasi messaggio di errore che l'utente inserisce. Con questo metodo, un errore tecnico non sarà preoccupante per l'utente.
Invece di un errore, viene visualizzato un breve messaggio.
Conclusione
In questo post, abbiamo visto per la prima volta l'introduzione di eccezioni in Python. Abbiamo discusso di AssertionError, come funziona e come possiamo implementare AssertionError in Python. Abbiamo spiegato diversi vantaggi dell'asserzione e come possiamo evitarli. Nell'ultima sezione di questo post, abbiamo visto come possiamo gestire l'assertionerror in Python usando i blocchi Try-Except, il modulo Traceback e l'istruzione di stampa.