Start · Sprachen · PHP · Referenz · MongoDB\Driver\Exception\InvalidArgumentException

MongoDB\Driver\Exception\InvalidArgumentException

Klasse

Wird ausgelöst, wenn ein an eine MongoDB-Treiber-Funktion übergebenes Argument ungültig ist.

seit PHP 1.0.0 Kategorie: error

Signatur

class MongoDB\Driver\Exception\InvalidArgumentException extends MongoDB\Driver\Exception\RuntimeException

Beschreibung

Die MongoDB\Driver\Exception\InvalidArgumentException ist eine Ausnahme, die vom MongoDB-PHP-Treiber (ext-mongodb) geworfen wird, wenn ein übergebenes Argument nicht den Erwartungen der aufgerufenen Methode oder Funktion entspricht. Typische Auslöser sind falsche Typen, ungültige Werte oder fehlende Pflichtargumente.

Diese Klasse erweitert MongoDB\Driver\Exception\RuntimeException, die wiederum von der SPL-Klasse RuntimeException erbt. Sie implementiert außerdem das Interface MongoDB\Driver\Exception\Exception, das als gemeinsames Marker-Interface für alle MongoDB-Treiber-Exceptions dient.

In der Praxis empfiehlt es sich, InvalidArgumentException separat von anderen MongoDB-Ausnahmen abzufangen, da sie in der Regel auf einen Programmierfehler hinweist (falsch übergebene Parameter), der zur Entwicklungszeit behoben werden sollte – im Gegensatz zu Laufzeitfehlern wie Verbindungsproblemen.

  • Falsche Typen bei der Übergabe von Optionen an MongoDB\Driver\Query oder MongoDB\Driver\BulkWrite
  • Ungültige BSON-Daten oder nicht unterstützte Optionskombinationen
  • Fehlende oder leere Pflichtargumente wie z. B. ein Namespace-String

Beispiele

Ungültiges Argument beim Erstellen einer Query abfangen

<?php
use MongoDB\Driver\Query;
use MongoDB\Driver\Exception\InvalidArgumentException;

try {
    // Ein leerer Namespace löst eine InvalidArgumentException aus
    $query = new Query(['status' => 'active'], ['invalid_option' => true]);
} catch (InvalidArgumentException $e) {
    echo 'Ungültiges Argument: ' . $e->getMessage() . PHP_EOL;
    echo 'Code: ' . $e->getCode() . PHP_EOL;
} catch (\Exception $e) {
    echo 'Anderer Fehler: ' . $e->getMessage() . PHP_EOL;
}
Ungültiges Argument: Unknown option: invalid_option Code: 0

Ungültige BulkWrite-Optionen abfangen

<?php
use MongoDB\Driver\BulkWrite;
use MongoDB\Driver\Exception\InvalidArgumentException;
use MongoDB\Driver\Exception\Exception as MongoException;

try {
    // ordered muss ein Boolean sein, kein String
    $bulk = new BulkWrite(['ordered' => 'yes']);
} catch (InvalidArgumentException $e) {
    // Programmierfehler: falsche Option übergeben
    error_log('Entwicklerfehler – Argument korrigieren: ' . $e->getMessage());
    echo 'InvalidArgumentException gefangen: ' . $e->getMessage() . PHP_EOL;
} catch (MongoException $e) {
    echo 'Allgemeiner MongoDB-Fehler: ' . $e->getMessage() . PHP_EOL;
}
InvalidArgumentException gefangen: Expected "ordered" option to be boolean, string given

// Wichtig · Fallstricke

Hinweis zur Fehlerbehandlung: Da InvalidArgumentException typischerweise auf Programmierfehler hinweist, sollte sie in Produktionsumgebungen nicht stillschweigend ignoriert werden. Logge solche Ausnahmen immer, um Fehler im Code frühzeitig zu erkennen.

Die Klasse ist Teil des offiziellen mongodb-PECL-Extensions (ext-mongodb) und nicht mit der veralteten mongo-Extension zu verwechseln. Sie entspricht strukturell der gleichnamigen SPL-Klasse \InvalidArgumentException, ist aber in den MongoDB-Namespace eingebettet und implementiert das treibereigene Exception-Interface.