Try-Catch soll bei der Ausnahmebehandlung helfen. Dies bedeutet irgendwie, dass unser System dadurch robuster wird: Versuchen Sie, sich von einem unerwarteten Ereignis zu erholen.
Wir vermuten, dass bei der Ausführung und Anweisung (Senden einer Nachricht) etwas passieren könnte, sodass es in den Versuch eingeschlossen wird. Wenn etwas fast Unerwartetes passiert, können wir etwas tun: Wir schreiben den Haken. Ich glaube nicht, dass wir angerufen haben, um nur die Ausnahme zu protokollieren. Ich denke, der Catch-Block soll uns die Möglichkeit geben, den Fehler zu beheben.
Nehmen wir jetzt an, wir beheben den Fehler, weil wir das Problem beheben konnten. Es könnte super schön sein, es noch einmal zu versuchen:
try{ some_instruction(); }
catch (NearlyUnexpectedException e){
fix_the_problem();
retry;
}
Dies würde schnell in die ewige Schleife fallen, aber sagen wir, dass das Problem fix_the_problem true zurückgibt, dann versuchen wir es erneut. Wie würden SIE dieses Problem lösen, da es so etwas in Java nicht gibt? Was wäre Ihr bester Designcode, um dieses Problem zu lösen?
Dies ist wie eine philosophische Frage, da ich bereits weiß, dass das, wonach ich frage, von Java nicht direkt unterstützt wird.
remove()
von einem java.util.Queue
, der durchstößt und InvalidElementException
wenn die Warteschlange leer ist. Anstatt zu fragen, ob es leer ist, umrunde ich die Aktionen in einem Try-Catch (der unter Parallelität auch mit dem vorherigen if obligatorisch wird). In einem solchen Fall catch
würde ich im Block darum bitten, die Warteschlange mit weiteren Elementen zu füllen und dann erneut zu versuchen. Voila.