Программирование

Найди причину ошибки в коде

Помогает отлаживать код системно: формулирует проблему, проверяет вероятные причины, предлагает минимальные проверки и показывает точечное исправление без ненужного переписывания проекта.

Автор: PromptingGo Средний Язык: ru Просмотры: 1 Копирования: 0 Есть настройка
Средняя оценка
/ 5
Голосов: 0
Войти, чтобы оценить

1 Готовый промпт

Выступи в роли опытного разработчика и помоги найти причину ошибки в коде.

Язык или технология: C# / ASP.NET Core.

Код:
"""
public IActionResult Details(int id)
{
    var prompt = _context.Prompts.FirstOrDefault(x => x.Id == id);
    return View(prompt);
}
"""

Ошибка или неправильное поведение:
"""
При переходе на страницу с несуществующим id представление получает пустую модель и затем возникает ошибка.
"""

Ожидаемое поведение:
"""
Если запись не найдена, должна возвращаться страница 404.
"""

Работай как при нормальной отладке:

1. Кратко сформулируй, в чём проявляется проблема.
2. Выдели наиболее вероятную причину.
3. Если возможны несколько причин, расположи их по вероятности.
4. Для каждой существенной гипотезы предложи простую проверку.
5. После определения причины покажи минимальное исправление кода.
6. Объясни, почему это исправление решает проблему.
7. Дополнительные улучшения вынеси в отдельный раздел и не смешивай их с основной ошибкой.

Не переписывай весь код без необходимости. Не придумывай отсутствующие классы, настройки, версии библиотек или содержимое других файлов. Если данных недостаточно, прямо укажи, что именно нужно предоставить.
Как использовать
Вставьте код, опишите ошибку и ожидаемый результат. Нейросеть разберёт вероятные причины и предложит минимальное исправление.

2 Настроить под себя

Заполните понятные поля ниже. Сервис автоматически соберёт новую версию промпта под вашу задачу.

Укажите язык, фреймворк или технологию, если она известна.
Лучше приложить минимальный фрагмент, на котором воспроизводится ошибка.
Укажите, что именно происходит сейчас.
Это помогает отличить дефект от ожидаемой логики.

Поля со звёздочкой обязательны. Необязательные части исчезнут из результата, если оставить их пустыми.

3 Результат настройки

Заполните конструктор выше, и здесь появится готовый промпт.

4 Примеры результата

Текстовый пример

Причина:
`FirstOrDefault` может вернуть `null`, но результат сразу передаётся в представление.

Минимальное исправление:

if (prompt is null)
{
    return NotFound();
}

return View(prompt);

Почему это работает:
проверка останавливает выполнение до открытия представления и возвращает HTTP 404, если запись не найдена.

5 Комментарии

0
Комментариев пока нет. Будьте первым, кто обсудит этот промпт.