Hauptinhalt

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
Wenn innerhalb von 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 =

    70

Optional 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.

Siehe auch

| |