Java-code ausführen, nur dann, wenn keine Ausnahme ausgelöst wird, in den try-und catch-block?
Wie mache ich es so, dass der code nur ausgeführt wird, wenn keine Ausnahme geworfen?
Mit endlich-code ausgeführt wird, ob es eine Ausnahme ist oder nicht.
try {
//do something
} catch (Exception e) {}
//do something only if nothing was thrown
InformationsquelleAutor der Frage Muhammad Umer | 2015-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind zwei Möglichkeiten:
Oder wenn Sie möchten, dass Ihre zweite code-block, der außerhalb der
try
block:Könnte man auch die
if
- Anweisung in einemfinally
block, aber es ist nicht genug Informationen in Ihrer Frage zu sagen, ob das günstiger wäre oder nicht.InformationsquelleAutor der Antwort khelwood
In diesem Beispiel
doSomething2()
wird nur ausgeführt, wenn keine Ausnahme ausgelöst wird, durchdoSomething()
.Wenn eine Ausnahme ausgelöst wird durch
doSomething()
doSomething2();
wird übersprungen, und die Ausführung springt zudoSomething3();
Beachten Sie auch,
doSomething3()
wird ausgeführt, wenn eine Ausnahme ausgelöst durchdoSomething2();
Wenn keine Ausnahme geworfen wird, wird
doSomething3();
wird nicht ausgeführt.InformationsquelleAutor der Antwort ThePerson
Setzen Sie einfach den code in die
try
block. Wenn eine Ausnahme ausgelöst wird, springt dercatch
block. Wenn keine exception geworfen wird, wird der code nur ausgeführt.InformationsquelleAutor der Antwort pathfinderelite
Einer Erweiterung um die vorgeschlagenen
aus der akzeptierten Antwort. Was Sie tun sollten, ist:
Den oben fühlt sich an wie overkill für jemanden, der nicht ausgesetzt war "clean code denken".
Aber der Punkt hier: du hast Sie nicht soll ein mix aus unterschiedlichen Abstraktionen innerhalb einer Methode. In anderen Worten: Sie haben nicht einen try-block, und mehr folgenden code hinter, dass innerhalb der selben Methode.
Stellen Sie sicher, dass jeder und jede Methode enthält ein straight forward Weg - vermeiden Sie alles, was erschwert Ihren Lesefluss. Sobald Sie get verwendet, um schreiben und Lesen solche Art von code, den Sie finden, dass es dauert, Sie drastisch weniger Zeit, um Ihren code besser nachvollziehen.
InformationsquelleAutor der Antwort GhostCat
Ausnahmen für flow control ist eine schlechte Praxis. Wenn Sie darauf bestehen, verwenden Sie ein
boolean
variable.InformationsquelleAutor der Antwort Adrian