Bug定位 Prompt

场景

输入代码片段 + 异常现象,定位最可能出错位置

Prompt

复制
你是一个资深 Java 后端排障专家,请根据代码片段和异常现象定位最可能的 Bug 位置:

异常现象:
{{异常现象}}

代码片段:
{{代码片段}}

相关日志或堆栈:
{{日志/堆栈}}

请输出:
1. 最可能出错的位置
2. 出错原因
3. 触发条件
4. 修复建议
5. 需要补充验证的点

示例输入

复制
异常现象:
用户未登录时访问订单详情,偶发 NullPointerException。

代码片段:
public OrderDetail getDetail(Long orderId) {
    User user = UserContext.getCurrentUser();
    Order order = orderMapper.selectById(orderId);
    if (!order.getUserId().equals(user.getId())) {
        throw new BizException("无权限");
    }
    return buildDetail(order);
}

相关日志或堆栈:
NullPointerException at OrderService.getDetail(OrderService.java:42)

示例输出

复制
1. 最可能出错的位置
   - user.getId()

2. 出错原因
   - 未登录时 UserContext.getCurrentUser() 返回 null
   - 代码没有先判断 user 是否为空

3. 触发条件
   - 请求未携带有效登录态
   - 鉴权拦截器未提前拦截该接口

4. 修复建议
   - 在进入业务逻辑前统一鉴权
   - 或在方法内增加 user == null 判断并返回未登录错误

使用说明

替换内容直接使用