Um eine Ausnahme auszulösen:
%Vor%Um eine Ausnahme zu behandeln:
%Vor%Um eine Ausnahme zu behandeln und einige der Informationen der Ausnahme zu verwenden:
%Vor% Um sicherzustellen, dass immer etwas passiert (a la try finally
):
Ich möchte nur darauf hinweisen, dass @Frank Shearar nebenbei bemerkt, dass es noch eine andere Möglichkeit gibt. Ich meine mit Absicht. Irgendwann ist es sinnvoller, dem Anrufer jetzt zu zeigen, welche Probleme werfen wird.
Die #on:do:
ist vollkommen akzeptabel, aber die meiste Zeit wissen Sie nicht, was Sie als erstes Argument anführen sollen. block on: ?? do: something
.
Lass mich ein Beispiel nehmen. Eigentlich gibt es ein Beispiel aus der Sammlung Bibliothek. Besonders in Bezug auf Wörterbuch.
%Vor% Was passiert, wenn 4
nicht im Wörterbuch ist? Sie erhalten nur einen einfachen Fehler, den Sie in #on:do:
fangen müssen.
Aber es gibt einen besseren Weg, um mit dieser Situation umzugehen:
%Vor% Sie behandeln den Fehler genauso wie #on:do:
, aber jetzt wissen Sie warum.
So könnten Sie das in anderen tun, um Ihren Fehler richtig zu behandeln.
Beachten Sie, dass Sie den Ausnahmecode in einen Block schreiben müssen, damit er erst ausgewertet wird, wenn der Fehler auftritt.
%Vor%funktioniert vielleicht, aber es ist falsch. Hoffe, dass dir das hilft.
Tags und Links smalltalk error-handling