当前位置: 首页 > 面试题库 >

当ADO.NET查询无法检索所请求的数据时,应该引发什么异常?

郭通
2023-03-14
问题内容

为了向我们的应用程序中添加一些参数验证和正确的用法语义,我们尝试向.NET应用程序中添加正确的异常处理。

我的问题是:如果特定查询没有返回数据或找不到数据,则在ADO.NET中引发异常时,应使用哪种类型的异常?

Psuedocode :(阅读,不要仔细检查代码的语义,我知道它不会编译)

public DataSet GetData(int identifier)
{
    dataAdapter.Command.Text = "Select * from table1 Where ident = " + identifier.toString();
    DataSet ds = dataAdapter.Fill(ds);
    if (ds.table1.Rows.Count == 0)
        throw new Exception("Data not found");

    return ds;
}

问题答案:

在MSDN准则状态:

  • 考虑抛出驻留在系统名称空间中的现有异常,而不是创建自定义异常类型。

  • 如果您所遇到的错误情况可以通过编程方式与其他任何现有异常处理方式不同,请创建并引发自定义异常。否则,抛出现有异常之一。

  • 不要仅仅为了拥有团队的例外就创建和抛出新的例外。

没有硬性规定:但是,如果您有一种不同的方式来处理此异常,请考虑创建一个自定义异常类型,例如Johan Buret建议的DataNotFoundException 。

否则,您可能会考虑抛出现有的异常类型之一,例如System.Data.DataException甚至可能抛出System.Collections.Generic.KeyNotFoundException。



 类似资料:
  • 问题内容: 什么时候应该创建一个检查异常,什么时候应该创建一个运行时异常? 例如,假设我创建了以下类: 我应该如何创建我的?它应该扩展还是?还是我应该只使用它? 问题答案: 在这个话题上有很多分歧。在我的上一份工作中,我们遇到了一些实际问题,运行时异常被遗忘了,直到它们出现在生产环境中(在ageswards.com上),因此我们决定只使用已检查的异常。 在我目前的工作中,我发现在很多情况下都有很多

  • 我想以二进制格式存储图像,并以二进制格式检索它,以图像格式显示它。我能够以二进制格式存储该文件,但在检索它时,我得到了错误java空指针异常。请指出错误。代码如下:

  • 问题内容: 我正在审查为准备明天早上的期末考试而做的期中考试。我把这个问题弄错了,但是没有指出正确的答案,因此我忽略了询问教授。 考虑以下代码片段: 以下有关该代码的下列哪项正确? 主要方法旨在捕获和处理所有类型的异常。 主要方法是设计用来捕捉和处理鱼。 如果出现这种情况,则main方法应该简单地终止。 如果发生任何异常,main方法应该简单地终止。 我选择了第二个选项。 问题答案: 答案是数字4

  • 大家好! 我今天正在做一个电子商务网站的项目(练习给我的学习)。我目前正在控制管理员可以制作的不同条目(创建一个产品,一个品牌等) 为了创建控件,我使用express-validator,下面是不同的表及其参数: 客户: 用户名 电子邮件 密码 产品: 产品名称 说明 价格 图像URL 产品数量 品牌ID 品牌ID: 品牌名称 徽标URL 和更多 我想知道什么是常见的验证数据的有效性插入从一个电子

  • 我正在尝试运行检查数据库并获得连接不存在错误!我在MySQL中有一个名为myapp的数据库以及其他数据库。 这是我的settings.py 项目结构: 这就是发生的情况: root @ IP-10-202-209-99:~/Desktop/my site # python manage.py inspectdb-database myapp trace back(最近一次调用last):< br

  • 问题内容: 在Java线程中,“运行”方法不能引发“检查的异常”。我在Core Java(第1卷)书中遇到了这个问题。有人可以解释其背后的原因吗? 问题答案: 有人可以解释其背后的原因吗? 是的,因为您抛出的任何异常都会被JVM仔细忽略。因此,将其抛出可能是一个错误(除非您对该线程具有特定的异常处理程序,请参阅有关该文档的文档)。没有理由煽动潜在的错误行为。 或者举个例子。 编辑 为什么父线程不能