gpt4 book ai didi

c# - ArgumentException 的正确用法?

转载 作者:可可西里 更新时间:2023-11-01 09:11:39 27 4
gpt4 key购买 nike

据我所知,ArgumentExceptions 通常是这样使用的:

public void UpdateUser(User user)
{
if (user == null) throw new ArgumentException("user");
// etc...
}

但是如果我有这样的东西怎么办:

public void UpdateUser(int idOfUser)
{
var user = GetUserById(idOfUser);
if (user == null) throw new ArgumentException("idOfUser");
// etc...
}

那还是 ArgumentException 吗?

最佳答案

第一个

if (user == null) throw new ArgumentException("user");

应该是

if (user == null) throw new ArgumentNullException("user");

如果可能你不应该抛出 ArgumentException直接

The primary derived classes of ArgumentException are ArgumentNullException and ArgumentOutOfRangeException. These derived classes should be used instead of ArgumentException, except in situations where neither of the derived classes is acceptable.

第二个例子,这里Should I throw a KeyNotFoundException for a database lookup?他们建议(在评论中)

if (user == null) throw new ObjectNotFoundException();

它在 System.Data 中定义:System.Data.ObjectNotFoundException .

关于c# - ArgumentException 的正确用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980966/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com