class NoArgError(Exception):
    pass


class StationNotFoundError(Exception):
    pass


class WeatherStationNotFoundError(Exception):
    pass


class ServerCommunicationError(Exception):
    pass


class MultipleStationsFoundError(Exception):
    message_text = ''
    queried_station = ''
    station_list = []

    def __init__(self, message_text, queried_station, station_list):
        self.message_text = message_text
        self.queried_station = queried_station
        self.station_list = station_list


def error_callback(update, context):
    try:
        raise context.error
    except NoArgError:
        update.message.reply_text('No argument specified!')
        return
    except StationNotFoundError:
        update.message.reply_text('No station matching this name found!')
        return
    except ServerCommunicationError:
        update.message.reply_text('Error with server communication')
        return
    except WeatherStationNotFoundError:
        update.message.reply_text('No weather station matching this name found!')
