Verwenden von try/catch zur Fehlerbehandlung
Sie können eine try/catch-Anweisung verwenden, um Code auszuführen, nachdem Ihr Programm einen Fehler festgestellt hat. try/catch-Anweisungen können nützlich sein, wenn Sie:
das Programm auf eine andere Weise beenden möchten, um Fehler zu vermeiden.
unerwünschte Nebenwirkungen des Fehlers beseitigen müssen
viele problematische Eingabeparameter oder Befehle haben
Ordnen Sie try/catch-Anweisungen in Codeblöcken an, ähnlich wie in diesem Pseudocode:
try try block... catch catch block... end
try block ein Fehler auftritt, überspringt MATLAB® alle verbleibenden Befehle im Block try und führt die Befehle in catch block aus. Wenn innerhalb von try block kein Fehler auftritt, überspringt MATLAB den gesamten catch block.Beispielsweise kann eine try/catch-Anweisung die Notwendigkeit verhindern, Fehler auszulösen. Betrachten Sie die Funktion combinations, die die Anzahl der Kombinationen von k-Elementen aus n-Elementen zurückgibt:
function com = combinations(n,k) com = factorial(n)/(factorial(k)*factorial(n-k)); end
MATLAB löst einen Fehler aus, wenn k > n. Es ist nicht möglich, eine Menge mit mehr Elementen, k, als man hat, n, zu konstruieren. Mit einer try/catch-Anweisung können Sie den Fehler vermeiden und diese Funktion unabhängig von der Reihenfolge der Eingaben ausführen:
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 behandelt jede Reihenfolge von ganzen Zahlen als gültige Eingabe:C1 = robust_combine(8,4) C2 = robust_combine(4,8)
C1 =
70
C2 =
70Optional können Sie weitere Informationen zu Fehlern erfassen, wenn eine Variable Ihrer catch-Anweisung folgt:
catch MExc
MExc ist ein Objekt der Klasse MException, das weitere Informationen über den ausgelösten Fehler enthält. Weitere Informationen zum Zugriff auf Informationen aus MException-Objekten finden Sie unter Exception Handling in a MATLAB Application.