Java-try-catch-Blöcke

Hier eine einfache Frage :

Was haltet Ihr von code, die die Verwendung try catch für jede Anweisung ?

void myfunction() {
    try {
        instruction1();
    }
    catch (ExceptionType1 e) {
        //some code
    }
    try {
        instruction2();
    }
    catch (ExceptionType2 e) {
        //some code
    }
    try {
        instruction3();
    }
    catch (ExceptionType3 e) {
        //some code
    }
    try {
        instruction4();
    }
    catch (ExceptionType4 e) {
        //some code
    }

    //etc
}

Ich weiß, dass ist schrecklich, aber ich will wissen ob das die Leistung abnimmt.

  • Wenn Sie wissen möchten, ob dass die Leistung abnimmt, Messen Sie es! Es gibt zu viele Faktoren, um eine definitive Antwort geben (Ihre JVM, hardware-Plattform, wie zeitaufwendig sind solche instructionX Anrufe, ob Ausnahmen tatsächlich geworfen bekommen).
  • möglich, Duplikat der Java try/catch-Leistung, wird es empfohlen, um zu halten, was innerhalb des try-Klausel auf ein minimum reduzieren?
  • Die Leistung decrese ist minimal, aber Sie könnte einen hohen Preis zahlen müssen, da Sie eingeführt haben, die mehrfache Ausführung Weg. Wenn exception 1 wird ausgelöst, und Sie behandeln es, dann Ausnahme 2 bekommen könnte geworfen. Es hängt tatsächlich davon ab, Ihre business-Logik ( soll die Ausführung unterbrochen werden, wenn eine der exception wird geworfen oder nicht). Aber die Leistung ist nicht ein Problem mit Ihrem code.
  • dein code-Beispiel ist irreführend... Was Sie sich beziehen, als "Anleitung" geschrieben wird, als ob es war immer eine Methode aufrufen. Hast du gedacht, "was denkst du, Was der code mit try/catch um jeden Methodenaufruf?" Da würd ich sicher noch mehr Dinge zu sagen, die Verpackung Anweisungen wie int a = 42; in einem try/catch 😉
  • Wird dies nie schaffen einen spürbaren Rückgang in der Leistung
Schreibe einen Kommentar