try except
NMelis opened this issue · 3 comments
NMelis commented
telegram-finance-bot/server.py
Line 90 in 69fd6b7
Предлагаю поправить функцию
@dp.message_handler()
async def add_expense(message: types.Message):
"""Добавляет новый расход"""
try:
expense = expenses.add_expense(message.text)
except exceptions.NotCorrectMessage as e:
await message.answer(str(e))
return
answer_message = (
f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n"
f"{expenses.get_today_statistics()}")
await message.answer(answer_message)
на
@dp.message_handler()
async def add_expense(message: types.Message):
"""Добавляет новый расход"""
try:
expense = expenses.add_expense(message.text)
> answer_message = (
> f"Добавлены траты {expense.amount} руб на {expense.category_name}.\n\n"
> f"{expenses.get_today_statistics()}")
> await message.answer(answer_message)
except exceptions.NotCorrectMessage as e:
await message.answer(str(e))
alexey-goloburdin commented
Если рассматривать этот проект для себя то да, видеть stacktrace и название ошибки нам как программистам в телеграме будет удобно. Но как общая практика это не очень хорошо, показывать пользователям страшные ошибки — их надо логировать, причем настроить логирование так, чтобы точно любая непредвиденная фигня точно попала в лог с полным трейсом на момент ошибки.
NMelis commented
@alexey-goloburdin да все верно, я ничего не имею против, просто у вас return в блоке except выглядит не красиво, чтобы это убрать я просто код после return перемести в блок try - от этого ничего не меняется в логике, так по мне выглядет по потонячее