Contenuto principale

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
Se si verifica un errore all'interno di 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 =

    70

Opzionalmente, è 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.

Vedi anche

| |