def convert(message: telebot.types.Message): try: values = message.text.split(' ') if len(values) != 3: raise ConvertionException('Неверное число параметров') currency, currency_transfer, amount = values total_base = CurrencyConverter.get_price(currency, currency_transfer, amount) except ConvertionException as e: bot.reply_to(message, f'Ошибка пользователя\n{e}') except Exception as e: bot.reply_to(message, f'Не удалось обработать команду\n{e}') else: text = f'{amount} {currency} в {currency_transfer} = {round(total_base * float(amount))}' bot.send_message(message.chat.id, text)
def convert(message: telebot.types.Message): try: values = message.text.split(' ') if len(values) != 3: raise APIException('Слишком много параметров.') quote, base, amount = values total_base = CurrencyConverter.get_price(quote, base, amount) except APIException as e: bot.reply_to(message, f'Ошибка пользователя. {e}') else: text = f'Цена {amount} {quote} в {base} - {total_base}' bot.send_message(message.chat.id, text)
def convert(message: telebot.types.Message): try: values = message.text.split(' ') if len(values) != 3: raise APIException('Неправильное количество параметров') quote, base, amount = values total_base = CurrencyConverter.get_price(base, quote, amount) except APIException as e: bot.reply_to(message, f'Ошибка пользователя: \n{e}') except Exception as e: bot.reply_to(message, f'Не удалось выполнить операцию \n{e}') else: text = f'Цена {amount} {base} в {quote} - {round((total_base * float(amount)), 5)}' bot.send_message(message.chat.id, text)
def convert(message: telebot.types.Message): try: values = message.text.split(' ') if len(values) != 3: raise ConvertionException('Неправильное количество параметров') values[2] = values[2].replace( ',', ".") # Замена запятой на точку для обработки <float> base, quote, amount = values total_base = CurrencyConverter.get_price(base, quote, amount) except ConvertionException as e: bot.reply_to(message, f'Ошибка пользователя.\n{e}') except Exception as e: bot.reply_to(message, f'Не удалось обработать команду.\n{e}') else: text = f'Цена {amount} {base} в {quote} - {round((total_base * float(amount)), 5)}' bot.send_message(message.chat.id, text)
def convert(message: telebot.types.Message): #Для обработки исключений всю обработку обернем в try try: list_of_values = message.text.split(' ') if len(list_of_values) != 3: raise APIException('Не верное количество параметров.') base, quote, amount = list_of_values #Вызовем собственно саму обработку конвертации total_amount = CurrencyConverter.get_price(base, quote, amount) except APIException as e: bot.reply_to(message, f'Ошибка пользователя.\n{e}') except Exception as e: bot.reply_to( message, f'Упс.. Что-то пошло не так. Не удалось обработать команду\n{e}') else: #Если код в попытке (try) выполнился успешно - выведем пользователю полученную сумму text = f'Сумма после конвертации: {round(total_amount, 2)} {keys[quote]}' bot.reply_to(message, text)