应该抛出异常还是方法应该简单地 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
。
我目前想知道如果将 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
。