throw new BusinessException("入参数据为null!"); 这个异常有问题吗
时间: 2024-05-19 20:17:26 浏览: 4
这个异常看起来是自定义异常,但是需要根据具体的业务场景来确定是否有问题。如果在业务代码中,确实存在传入参数为 null 的情况需要进行抛出异常的处理,那么这个异常是没有问题的。但是如果没有对应的业务需求或者在一些场景下,传入参数为 null 不需要抛出异常,那么这个异常就有问题,因为它会增加代码的复杂度,同时也会影响代码的性能。因此,在使用自定义异常时需要根据具体的业务场景来进行判断,确保异常的使用是合理的。
相关问题
优化这段代码 if (byAlarmId != null) { throw new BusinessException(ErrorCode.DATA_ALREADY_EXISTS); }
可以考虑使用 Optional 类型来避免空指针异常的发生,代码如下:
```
Optional<Alarm> optionalAlarm = alarmRepository.findByAlarmId(alarmId);
if(optionalAlarm.isPresent()) {
throw new BusinessException(ErrorCode.DATA_ALREADY_EXISTS);
}
```
这样可以更加安全地判断是否存在该数据,避免了空指针异常的发生。
houseIds.stream().forEach(houseId ->{ RptPigletFattenSourceDtoResult dtoResult = map.get(houseId); if (ObjectUtil.isNull(dtoResult)){ throw new BusinessException("数据未刷新,请稍后再试"); } }); 优化代码
可以尝试使用 Optional 类型来避免空指针异常,代码如下:
houseIds.stream().forEach(houseId ->{
RptPigletFattenSourceDtoResult dtoResult = Optional.ofNullable(map.get(houseId))
.orElseThrow(() -> new BusinessException("数据未刷新,请稍后再试"));
});
这样可以避免使用 ObjectUtil.isNull() 方法,也可以更加简洁地处理空指针异常。