Auf dieser Seite wird beschrieben, wie Sie Fehler bei der Verwendung der Maps JavaScript API und der Place-Klasse behandeln.
Für die Google Maps JavaScript API werden die folgenden Klassen für Fehler verwendet:
-
MapsNetworkError
steht für einen Netzwerkfehler eines Webdienstes (kann RPCStatus-Fehler enthalten). -
MapsRequestError
steht für einen Anforderungsfehler von einem Webdienst (d.h. das Äquivalent eines 4xx-Codes in HTTP). -
MapsServerError
steht für einen serverseitigen Fehler eines Webdienstes (entspricht einem 5xx-Code in HTTP).
Die Klassen MapsNetworkError
, MapsRequestError
und MapsServerError
gehören zur Maps Core Library.
Weitere Informationen zu Bibliotheken
Jede dieser Klassen enthält die folgenden Attribute:
Die code
-Property gibt den Fehlertyp an. Die endpoint
-Property gibt den Endpunkt an, der den Fehler zurückgegeben hat, z. B. PLACES_DETAILS
. Da MapsNetworkError
eine Unterklasse von Error
ist, sind auch andere Properties wie name
und message
verfügbar.
Das folgende Snippet zeigt die Struktur einer Maps-Fehlermeldung:
MapsRequestError: PLACES_GET_PLACE: INVALID_ARGUMENT: Error fetching fields: The provided Place ID: ChIJN5Nz71W3j4ARhx5bwpTQEGg**** is not valid. [error.name ] [error.endpoint ] [error.code ] [error.message ---> ... ]
Der Rohfehler umfasst alles im Fehlerstring. error.message
umfasst den gesamten Fehlerstring ohne error.name
.
Das folgende Snippet zeigt die Fehlerbehandlung bei Verwendung der Place-Klasse. In diesem Beispiel wird ein Try/Catch-Block verwendet, um die drei Fehlertypen zu verarbeiten. Ähnlicher Code kann verwendet werden, um Fehler für jede Maps JavaScript API-Klasse zu verarbeiten.
async function getPlaceDetails() { const { Place } = await google.maps.importLibrary("places") as google.maps.PlacesLibrary; const { MapsNetworkError, MapsRequestError, MapsServerError } = await google.maps.importLibrary("core") as google.maps.CoreLibrary; // Use place ID to create a new Place instance. const place = new Place({ id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg****', // Pass a bad Place ID to trigger an error. }); // Error handling for fetchFields. try { // Call fetchFields, passing the desired data fields. await place.fetchFields({ fields: ['displayName', 'formattedAddress', 'location'] }); } catch (error: any) { if (error && error instanceof google.maps.MapsRequestError) { // HTTP 4xx request error. console.error('fetchFields failed: MapsRequestError - check the request parameters', error); } else if (error && error instanceof google.maps.MapsServerError) { // HTTP 5xx server-side error. console.error('fetchFields failed: MapsServerError', error); } else if (error && error instanceof google.maps.MapsNetworkError) { // Network error. console.error('fetchFields failed: MapsNetworkError', error); } else { console.error('fetchFields failed: An unknown error occurred', error); } } // ... }