Eine Ausnahme auslösen oder null zurückgeben

Wenn ich die Funktion unten habe, mit zwei Möglichkeiten

private MyObject findBlank() {
    for (int i = 0; i < pieces.length; i++) {
        if(pieces[i].isBlank()){
            return pieces[i];
        }
    }
    return null;
}

private MyObject findBlank() {
    for (int i = 0; i < pieces.length; i++) {
        if(pieces[i].isBlank()){
            return pieces[i];
        }
    }
    throw new NoSuchFieldError("No blank piece found!");
}

Von dieser Methode weiß ich, dass essollte immer ein Objekt zurückgeben Eines der "Stücke" ist immerisBlank() == true , die Rückgabe Null am Ende ist nur, um den Compiler zufrieden zu stellen. Da dies der Fall ist und mein Code ohnehin nicht funktioniert, wenn er null zurückgibt, ist dies der richtige Weg, um eine Ausnahme auszulösen?

Meine Optionen sind:

Geben Sie null zurück, und die App erhält in einigen Fällen eine NullPointerExceptionGeben Sie null zurück und schließen Sie die Verwendung der Methode mit (myObject! = null) -Prüfungen ablöst eine Ausnahme aus, die zur Laufzeit explodiert

Ich denke, was ich frage, ist dies der richtige Ort, um eine Ausnahme zu werfen? es gibt nichts, was ich dagegen tun kann, wenn es in die Situation gerät. Ist dies als "außergewöhnlich" eingestuft oder sollte ich null prüfen, was meine Methode zurückgibt (wodurch mein Code schrecklich aussieht). Wenn ich weiß, dass es nicht null zurückgeben sollte, sollte ich die Ausnahme richtig auslösen?

Auch wie würde ich welche Ausnahme wählen, oder eine verlängern und meine eigene werfen?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage