if(null-check)-else vs try catch(NullPointerException) was ist effizienter?

Welche der folgenden drei Funktionen ist effizienter;

  public String getmConnectedDeviceName1() {
        if(null != mServerDevice) {
            return mServerDevice.getName();
        }
        else {
            return null;
        }
    }

  public String getmConnectedDeviceName2() {
        return mServerDevice == null ? null : mServerDevice.getName();
    }


  public String getmConnectedDeviceName3() {
        try{
            return mServerDevice.getName();
        }
        catch(NullPointerException e) {
            return null;
        }
    }

Bitte Antworten Sie mit konkreten akzeptable Logik.

  • Es gibt keine Logik anwenden. Trapping Ausnahmen-test für null-Werten ist einfach nur falsch.
  • die Frage war nicht um richtig oder falsch. es wurde über die Effizienz. Lesen Sie die Frage sorgfältig durch.
  • OK. Also absichtlich abfangen einer Ausnahme ist ineffizient, da die Antworten erklären. Unabhängig davon, dass die richtige Praxis überschreibt Effizienz in fast allen Fällen. In diesem Fall, wie in den meisten anderen, die richtige Praxis ist auch die effizienteste.
Schreibe einen Kommentar