我DataAnnotations
在我的 GUI 层中使用以在表单中显示错误消息,但我有一些关于如何处理来自我的服务层的异常以及如果它们发生时向用户显示什么的问题。
为了与我的服务层通信,我使用了请求和响应类。例如:
public class RegisterUserRequest
{
public string Username { get; set; }
public string Password { get; set; }
public string Email { get; set; }
}
我应该在 setter 方法中检查我的请求类中的空值吗?还是我应该在我的服务中这样做?ArgumentNullException
我认为在请求和响应设置器方法上执行此操作并在参数为空时抛出一个是有意义的。
在我的服务类InvalidOperationException
中,例如用户名或密码无效时,我会抛出一个错误。这是抛出的正确异常吗?
我的另一个问题是我是否应该捕获所有异常,如果是,我应该告诉用户关于异常的什么?例如,如果某个属性为空,它应该抛出一个ArgumentNullException
. 但是我应该让用户知道这一点吗?
当用户名无效时,我会抛出一个InvalidOperationException
. 我确实想向用户展示这个,因为它告诉用户它应该使用至少 3 个字符或其他内容。
我认为我应该使用来自的错误消息InvalidOperationException
向用户显示并在其他异常发生时重定向到标准错误视图,例如:“糟糕,出了点问题”。