From fc605b9cd540354fd695db0af2460101a0b780b5 Mon Sep 17 00:00:00 2001 From: AshishAshishA <102466134+AshishAshishA@users.noreply.github.com> Date: Sat, 23 Mar 2024 02:29:11 +0530 Subject: [PATCH] Exception handling in response for potential error Enhanced the directions function with error handling to manage potential errors during API requests, ensuring robustness and reliability in the application. Specific error messages from the Google Maps API are captured and raised as API-error exceptions for improved clarity on encountered issues. --- googlemaps/directions.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/googlemaps/directions.py b/googlemaps/directions.py index 353145cc..444298c9 100644 --- a/googlemaps/directions.py +++ b/googlemaps/directions.py @@ -18,6 +18,7 @@ """Performs requests to the Google Maps Directions API.""" from googlemaps import convert +from googlemaps.exceptions import ApiError def directions(client, origin, destination, @@ -150,4 +151,15 @@ def directions(client, origin, destination, if traffic_model: params["traffic_model"] = traffic_model - return client._request("/maps/api/directions/json", params).get("routes", []) + # Make the API request + response = client._request("/maps/api/directions/json", params) + + # Check if the API request was successful + if response.get("status") == "OK": + return response.get("routes", []) + elif response.get("error_message"): + # Handle specific error message returned by the API + raise ApiError(response.get("error_message")) + else: + # Handle generic API error + raise ApiError("Unknown error occurred during API request")