应该抛出异常还是方法应该简单地 return?

Should an exception be thrown or should the method simply return?

我目前想知道如果将 null 传递给以下方法,“最好”做什么。它应该默默地return(因为它没有)还是应该抛出异常?

public void RaisePropertyChanged(string propertyName)
{
    if(propertyName is null)
    {
        return;
    }

    this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

}

Here 它说

[I]f the function's assumptions about its inputs are violated, it should throw an exception instead of returning normally

并且我相信函数 假设 一个非 null 输入被传递给它,但是,它仍然可以执行(成功?)如果通过了 null,则没有任何内容。


抛出异常而不是 return 就良好/干净的代码而言,这里是“最好”的事情吗?

当缺少 属性 名称被认为是开发错误时,该方法应抛出 ArgumentNullException。不然默默return.

就好了

无论您做什么,更安全的做法是测试 string.IsNullOrWhiteSpace(propertyName)。执行此操作时,如果未提供专有名称,只需抛出一个 ArgumentException