prova a cattura in matlab

prova a cattura in matlab
Il seguente articolo spiega come utilizzare l'istruzione Try-Catch in MATLAB®. L'istruzione di try-catch è uno dei linguaggi di programmazione più utilizzati a livello globale e la sua modalità di esecuzione è la stessa per tutti loro. Questo articolo include esempi pratici e immagini per aiutare il lettore a capire come utilizzare questa affermazione per gestire gli errori nell'esecuzione in tempo reale.

Matlab prova la sintassi

Tentativo
dichiarazioni
cattura l'eccezione
dichiarazioni
FINE

Matlab prova le descrizioni ed esempi

Una dichiarazione di try-catch è uno strumento che fornisce la stabilità e la robustezza del programma contro eccezioni o errori nel tempo di esecuzione reale. Queste eccezioni o errori possono essere catturati in modo che quando si verificano uno di questi eventi, possono essere gestiti in modo prevedibile e ordinato e non influiscono sulle prestazioni del sistema.

L'istruzione Try-Catch è costituita da due blocchi: il tentativo è il blocco che racchiude la parte del codice che può generare un'eccezione o un errore e la cattura è il blocco che gestisce queste eccezioni da elaborare in modo sicuro. Quando un tentativo cattura un'eccezione, passa il controllo per catturare per l'elaborazione. Di seguito, esamineremo alcuni esempi pratici usando la dichiarazione di prova per capire meglio come funziona.

Come rilevare ed elaborare un'eccezione o un errore con l'istruzione Try-Catch in MATLAB

Questo esempio mostra come utilizzare l'istruzione Try-Catch rispetto a un errore comune quando si calcola le radici quadrate con la funzione realsqrt (). Questa è una delle tre funzioni di base che Matlab ha per questo tipo di operazione matematica e accetta solo numeri reali con un segno positivo come argomenti di input. Se questa regola non è soddisfatta, viene generato un errore.

Successivamente, cerchiamo di rilevare e gestire questo errore creando un'applicazione console che calcola le radici quadrate usando la funzione realsqrt (). Questa operazione viene eseguita nel blocco Try. Quando si verifica un errore, viene passato il controllo per catturare per risolvere il calcolo usando la funzione SQRT (), che accetta numeri negativi o complessi.

Crea uno script, incolla questo codice e fai clic su Esegui. Per chiudere l'applicazione, premere Ctrl+C

mentre 1
prompt = 'Immettere un valore per ottenere la sua radice quadrata.';
a = input (prompt);
Tentativo
x = realsqrt (a);
presa
Disp 'prova ha trovato un errore e ha superato il controllo per catturare'
x = sqrt (a);
FINE
disp (['La radice quadrata è:', num2str (x)])
FINE

Una volta che l'app è attiva e in esecuzione, inseriamo i valori di cui abbiamo bisogno per calcolare la radice quadrata.

Se vengono immessi valori negativi o complessi, invece di raccogliere un errore nella funzione RealSqrt (), passerà il controllo per catturare e l'operazione viene risolta con la funzione SQRT (). Quando ciò accade, il seguente messaggio viene visualizzato nella console di comando:

"Prova a trovare un errore e ha superato il controllo per catturare"

Come identificare gli errori con "mexception" e gestirli con try catch in matlab

Sebbene identificare le eccezioni con "Mexception" meriti il ​​proprio articolo, spiegheremo brevemente come utilizzare questa risorsa, il che ci aiuta a identificare gli errori ed è un complemento efficace quando si utilizzano l'istruzione Try-Catch. Matlab costruisce un oggetto "mexception" con informazioni sull'errore quando viene generato un errore. Queste informazioni sono molto utili in quanto possiamo usarle per classificare e gestire vari errori specifici. Di seguito puoi vedere il contenuto di "Mexception" con informazioni su un errore generato dalla funzione univoca ().

Nel seguente esempio, vedremo come recuperare queste informazioni per elaborare correttamente gli errori. Per fare ciò, creeremo un'applicazione console in cui utilizzeremo la funzione unica () per generare gli errori che gestiremo nel blocco catch e la funzione prompt () per inserire i dati che saranno gli argomenti di input di unici ().

Quando un tentativo cattura uno di questi errori, memorizza le sue informazioni in "Mexception", che creeremo con il nome "Inf_err", come mostrato di seguito.

Catch Inf_err

Nel blocco di cattura, inviamo un messaggio all'utente che li informa di rilevare un errore con il seguente messaggio "Try ha trovato un errore e ha superato il controllo per catturare".

Quindi prendiamo l'identificatore di errore dall'oggetto precedentemente creato "ERR_INF.identificatore ". Questo identificatore ha la forma di una stringa e ci fornisce informazioni su:

La funzione che l'ha generata Matlab: unico

E l'errore specifico UnknownInput

'Matlab: unico: sconosciuto'

Questa stringa sarà l'argomento secondo cui l'interruttore si confronterà con ciascuno degli errori predefiniti in ciascun caso.

Switch Inf_err.identificatore
Caso 'Matlab: unico: UnknownInput'
..
Caso 'Matlab: unico: UnknownFlag'
..
FINE

Una possibile soluzione all'errore o un messaggio all'utente verrà fornita in ogni caso.

Crea uno script, incolla questo codice ed esegui lo script. Per chiudere l'applicazione, premere Ctrl+C.

ns = [1, 2, 3; 4, 5, 6];
mentre 1
prompt = 'Immettere un valore per diventare univoco.';
a = input (prompt);
Tentativo
x = unico (ns, a);
Catch Inf_err
Disp 'prova ha trovato un errore e ha superato il controllo per catturare';
Disp (['Identificatore di errore:', INF_ERR.identificatore]);
Switch Inf_err.identificatore
Caso 'Matlab: unico: UnknownInput'
Disp 'non è possibile trovare la voce specificata. Per favore riprova.';
Caso 'Matlab: unico: UnknownFlag'
Disp 'La funzione unica () non riconosce la flag:';
disp (a);
Disp "le flag valide sono" righe "," prima "," ultimo "," stabile "," ordinato ";
FINE
FINE
prompt = 'premi Invio per continuare';
a = input (prompt);
Clc ();
FINE

I dati inseriti tramite il prompt vengono inviati come secondo argomento di input alla funzione univoca (). Questo input corrisponde alle flag di "righe", "prima", "ultimo", "stabile", "ordinato" o "legacy" di questa funzione, quindi genererà un errore se viene inviata una stringa univoca () riconosciuto come una di queste bandiere. Genera anche un errore se questo input viene dato un valore numerico. Abbiamo predefinito un caso nell'interruttore condizionale per ciascuno di questi due errori per gestire ciascun errore separatamente. In entrambi i casi, i messaggi vengono inviati all'utente che li informa dell'errore e delle possibili soluzioni.

Quando l'applicazione è in esecuzione nella console MATLAB, immettere "righe" nel prompt e premere Invio. In questo caso, non viene generato alcun errore e il risultato è = unico (ns, "righe") e viene visualizzato nella console di comando.

In questo caso, la stringa "ABCD" è stata inviata a unica () e poiché non corrisponde a nessuna delle flag, è stato generato un errore.

Nel blocco "Catch", le informazioni su questo errore sono state raccolte e classificate per dargli un trattamento speciale, un messaggio all'utente con le opzioni di flag disponibili nella funzione univoca ().

Lo stesso in questo caso in cui è stato inviato un tipo di input non accettato, questo genererà un errore che il blocco "try" rileva e passa il controllo al blocco "cattura" in cui l'errore è classificato e trattato; In questo caso, un messaggio all'utente che segna l'errore e la possibile soluzione.

Conclusione:

In questo articolo, abbiamo spiegato la dichiarazione di try-catch in matlab. Abbiamo anche dato alcuni esempi pratici che dimostrano l'uso della "dichiarazione di prova per la gestione delle eccezioni. Abbiamo anche spiegato come classificare gli errori all'interno del blocco "cattura" usando l'oggetto Mexception. Speriamo che tu abbia trovato utile questo articolo di Matlab. Vedi altri articoli di suggerimento Linux per ulteriori suggerimenti e informazioni.