使用未找到的实体调用服务操作

service operation is called with a not found entity

我正在使用 Domain Driven Design (DDD)

我对我的应用程序服务进行了以下操作 IUserService

public void EnableUser(int userId)
{
    var user = userRepository.SelectById(userId);
    if (user == null)
    {
        //??
    }

    user.Enabled= true;
    userRepository.Save(usuario);
}

我应该抛出自定义异常吗? 如果是,我应该将自定义异常放在我的应用程序结构中的什么位置?

如果您的 UserService 无法处理用户不存在的情况,那么一定要抛出异常。我认为创建自定义异常将有助于区分其他潜在异常,在这种情况下,您将如何处理它们将在该异常类型的处理程序中指定。

在哪里处理异常取决于您的系统设计方式。您不希望它们被处理得太远以至于上下文丢失。对于此示例,如果启用用户是按钮单击或其他用户操作的结果,则启动该调用的事件或方法最有可能处理出现问题时发生的任何异常,并适当地通知用户并记录什么发生了。