我应该为数据库查找抛出KeyNotFoundException吗?

yoo*_*er8 0 .net c# exception-handling keynotfoundexception

我有一些代码,给定一个ID,从数据库中返回一个项目.如果没有项目与给定的ID匹配,是否适合抛出一个KeyNotFoundException,或者这样的异常仅适用于Dictionary类型?

Hea*_*ath 5

根据您用于访问数据库的框架(ODBC,ADO.NET等),框架可能会提供更好的替代方案.

System.Data命名空间包含几个这样的例外情况为例:http://msdn.microsoft.com/library/system.data.

但实际上,只要你记录了你所抛出的异常以及在什么条件下它并不重要.使用普通的东西是最好的,因为人们可能会假设,但如果他们正在阅读文档,他们将处理你说的任何异常会被抛出.

  • 正如Heath所提到的,`System.Data`包含异常,我通常倾向于使用`ObjectNotFoundException` (2认同)