在MSDN准则状态:
考虑抛出驻留在系统名称空间中的现有异常,而不是创建自定义异常类型。
如果您所遇到的错误情况可以通过编程方式与其他任何现有异常处理方式不同,请创建并引发自定义异常。否则,抛出现有异常之一。
不要仅仅为了拥有团队的例外就创建和抛出新的例外。
没有硬性规定:但是,如果您有一种不同的方式来处理此异常,请考虑创建一个自定义异常类型,例如Johan Buret建议的DatanotFoundException 。
否则,您可能会考虑抛出现有的异常类型之一,例如System.Data.DataException甚至可能抛出System.Collections.Generic.KeyNotFoundException。