Utilizzo di try/catch per gestire gli errori
È possibile utilizzare una dichiarazione try/catch per eseguire il codice dopo che il programma ha riscontrato un errore. Le dichiarazioni try/catch possono essere utili se:
Si desidera terminare il programma in un altro modo che eviti gli errori
È necessario eliminare gli effetti collaterali indesiderati dell'errore
Sono presenti molti parametri di input o comandi problematici
Organizzare le dichiarazioni try/catch in blocchi di codice, simili a questo pseudocodice:
try try block... catch catch block... end
try block, MATLAB® salta tutti i comandi rimanenti nel blocco try ed esegue i comandi i catch block. Se non si verificano errori all'interno di try block, MATLAB salta l'intero catch block.Ad esempio, una dichiarazione try/catch può evitare la necessità di generare errori. Si consideri la funzione combinations che restituisce il numero di combinazioni di k elementi su n elementi:
function com = combinations(n,k) com = factorial(n)/(factorial(k)*factorial(n-k)); end
MATLAB genera un errore ogni volta che k > n. Non è possibile costruire un insieme con più elementi k, rispetto agli elementi n che si possiedono. Utilizzando una dichiarazione try/catch, è possibile evitare l'errore ed eseguire questa funzione indipendentemente dall'ordine degli input:
function com = robust_combine(n,k) try com = factorial(n)/(factorial(k)*factorial(n-k)); catch com = factorial(k)/(factorial(n)*factorial(k-n)); end end
robust_combine considera qualsiasi ordine di numeri interi come input valido:C1 = robust_combine(8,4) C2 = robust_combine(4,8)
C1 =
70
C2 =
70Opzionalmente, è possibile acquisire ulteriori informazioni sugli errori se una variabile segue la dichiarazione catch:
catch MExc
MExc è un oggetto della classe MException che contiene ulteriori informazioni sull'errore generato. Per saperne di più su come accedere alle informazioni dagli oggetti MException, vedere Exception Handling in a MATLAB Application.