<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sunset_utc(self, date, latitude, longitude, observer_elevation=0):
 """Calculate sunset time in the UTC timezone. :param date: Date to calculate for. :type date: :class:`datetime.date` :param latitude: Latitude - Northern latitudes should be positive :type latitude: float :param longitude: Longitude - Eastern longitudes should be positive :type longitude: float :param observer_elevation: Elevation in metres to calculate sunset for :type observer_elevation: int :return: The UTC date and time at which sunset occurs. :rtype: :class:`~datetime.datetime` """


        try:
            return self._calc_time(90 + 0.833, SUN_SETTING, date, latitude, longitude, observer_elevation)
        except ValueError as exc:
            if exc.args[0] == "math domain error":
                raise AstralError(
                    ("Sun never reaches the horizon on this day, " "at this location.")
                )
            else:
                raise