我可以从应用程序中抛出哪些内置 .NET 异常?

2024-04-06

如果我需要从应用程序中引发异常,我可以使用哪些内置 .NET 异常类?他们都是公平的游戏吗?我什么时候应该自己导出?


See 创建和抛出异常 http://msdn.microsoft.com/en-us/library/ms173163.aspx.

在抛出内置异常时,它说:

不要故意从您自己的源代码中抛出 System.Exception、System.SystemException、System.NullReferenceException 或 System.IndexOutOfRangeException。

and

不要抛出一般异常

如果抛出一般异常类型,例如库或框架中的 Exception 或 SystemException,它会强制使用者捕获所有异常,包括他们不知道如何处理的未知异常。

相反,要么抛出框架中已存在的更派生的类型,要么创建自己的从 Exception 派生的类型。”

This 博客条目 http://blogs.msdn.com/fxcop/archive/2007/01/22/faq-what-exception-should-i-throw-instead-of-the-reserved-exceptions-found-by-donotraisereservedexceptiontypes.aspx还有一些有用的指南。

此外,FxCop 代码分析将“不引发异常”列表定义为此处描述 http://msdn.microsoft.com/en-us/library/ms182338.aspx。它建议:

以下异常类型过于笼统,无法向用户提供足够的信息:

  • 系统异常
  • 系统应用程序异常
  • 系统异常

以下异常类型是保留的,只能由公共语言运行时抛出:

  • 系统执行引擎异常
  • 系统索引超出范围异常
  • 系统.NullReferenceException
  • 系统内存不足异常

因此,理论上,您可以引发任何其他框架异常类型,前提是您清楚地了解 Microsoft 所描述的异常的意图(请参阅 MSDN 文档)。

请注意,这些是“指南”,正如其他一些人所说,围绕 System.IndexOutOfRangeException 存在争议(即许多开发人员抛出此异常)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以从应用程序中抛出哪些内置 .NET 异常? 的相关文章

  • 将类对象放置在向量中?

    我注意到我可以将一个类放置在一个向量中 这是我的程序 我收到以下错误 out blackjack exe blackjack obj blackjack obj error LNK2019 unresolved external symbo
  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 传递 constexpr 对象

    我决定给予新的C 14的定义constexpr旋转并充分利用它 我决定编写一个小的编译时字符串解析器 然而 我正在努力保持我的对象constexpr将其传递给函数时 考虑以下代码 include
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • 假装 .NET 字符串是值类型

    在 NET 中 字符串是不可变的 并且是引用类型变量 这通常会让新的 NET 开发人员感到惊讶 因为他们的行为可能会将它们误认为是值类型对象 然而 除了使用实践StringBuilder对于长连接 尤其是 在循环中 在实践中是否有任何理由需
  • 获取没有显式特征的整数模板参数的有符号/无符号变体

    我希望定义一个模板类 其模板参数始终是整数类型 该类将包含两个成员 其中之一是类型T 另一个作为类型的无符号变体T 即如果T int then T Unsigned unsigned int 我的第一直觉是这样做 template
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 在 C# 中为父窗体中的子窗体控件添加事件处理程序

    我有两种形式 一种是带有按钮和文本框的父表单 单击该按钮时 将打开一个对话框 该子窗体又包含一个文本框和一个按钮 现在我想要的是 每当子表单文本框中的文本更改时 父表单文本框中的文本会自动更改 为了获得这个 我所做的是 Form3 f3 n
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • 模板类的模板构造函数的 C++ 显式模板特化

    我有一个像这样的课程 template
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 使动态创建的链接标签在 Winforms 中可点击

    我正在制作一个程序 允许用户单击由动态链接标签创建的公司名称 在我想知道如何做到这一点之前 我从未在 C 中使用过链接标签 可为特定用户生成的业务数量各不相同 因此每个用户的链接标签数量并不相同 然后我想捕获业务 ID 以进行 Json 调
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 我可以使用 lambda 函数或 std::function 对象来代替函数指针吗?

    我有一个需要使用的库 它定义了以下内容 typedef void CallbackFunction const int i 并且有一个注册回调的函数 如下所示 void registerCallback CallbackFunction p

随机推荐

  • Fluent NHibernate 映射可空枚举

    我需要在我的类中映射一个可为空的枚举 但出现异常 NHibernate PropertyAccessException 无效的转换 检查您的映射是否属性类型不匹配 App Model Stock 的 setter gt System Inv
  • 为什么 C# 运算符重载必须是静态的?

    为什么 C 要求运算符重载是静态方法而不是成员函数 如 C 也许更具体地说 这个决定的设计动机是什么 埃里克 利珀特 Eric Lippert 在一篇文章中对此进行了极其详细的回答 博客文章 https ericlippert com 20
  • 使用 ostream 进行 C++ 日志记录

    我正在制作一个记录器 我想创建一个函数log 以流作为输入 例如 log hello lt lt lt lt world lt lt 10 lt lt n 我也希望它是线程安全的 我重新定义了 lt lt 运算符所以我可以这样做 log l
  • 为什么Python有格式化函数和格式化方法

    The format http docs python org 2 library functions html format内置函数中的函数似乎是str format http docs python org 2 library stdt
  • PostgreSQL 9.5 - 将 NULL 与 JSON 合并时更新不起作用

    My users表包含一个metadata类型列json 现在 我想向用户添加新的元数据 同时保留现有值 所以我正在使用 合并 2 个 JSON 对象的运算符 UPDATE users SET metadata metadata jsonb
  • 使用重定向/重写规则获取漂亮的浏览器 URL 时出现问题

    目前我使用 htaccess 重定向来发送 不错的 网址 办公室 伦敦 随便到我的脚本 讨厌的网址 db db pl 伦敦办事处 无论什么 我希望浏览器 url 很好 但使用 301 重定向则不然 所以我尝试使用 RewriteRule 但
  • 将数据框列中的列表拆分为多列[重复]

    这个问题在这里已经有答案了 我有一个 Pandas DataFrame 列 列表中包含多个列表 像这样的东西 df col1 0 1 2 2 3 1 a b 4 5 x y 2 6 7 我想将列表拆分为多列 因此输出应该类似于 col1 c
  • DataFrame.index.levels 在削减数据帧后显示“额外”值

    假设我有一个大数据框large行上有一个 MultiIndex 我通过仅选择某些行来缩减此数据框并将结果分配给small 尤其 small行上 MultiIndex 的第 0 级中的不同值少于large 然后我想要一个 MultiIndex
  • 如何轻松检测字符串中的utf8编码?

    我有一个由其他程序的数据填充的字符串 该数据可以使用 UTF8 编码 也可以不使用 因此 如果不是 我可以编码为 UTF8 但是在 C 中检测 UTF8 的最佳方法是什么 我看到了这个变体https stackoverflow com qu
  • Puppeteer pdf 分页错误

    我尝试用 puppetter 生成 pdf 文件 它适用于一页 但当我尝试生成多页 pdf 文档时 我遇到了分页错误 下面使用 HTML 模板来生成 如果可以 请你帮助我 复制的前提条件 将第一页填充到 100 高度并为下面的块添加标题 H
  • 为什么当我运行应用程序时会创建这么多“postgres.exe”?

    我有一个 J2EE 应用程序 部署在 JBoss 应用程序服务器中Windows Vista 32 位 平台 我的数据库是 PostgreSQL 9 0 4 并且我正在使用 JDBC 驱动程序 postgresql 9 0 801 jdbc
  • 快速发布请求编码加号变成空格

    最近我发现当我发送包含 号的帖子数据时 会变成空格 例如 菜肴名称 鱼 薯条 这会导致服务器端无法读取数据 所以我尝试以下 我使用 request setValue application json charset utf 8 forHTT
  • cocos2d中捏合时如何缩放精灵?

    我正在开发一个应用程序 我必须显示 50 到 70 个图像 精灵 我制作了一个滚动条 可以滚动所有这些图像 但我也想缩放这些图像 我一直在关注 http ganbarugagames com 2010 12 detecting touch
  • 如何在函数内部调用函数本身

    我有一个函数 我想在最后一行完成后再次调用它 如果我展示代码也许会更容易理解 function updateQuantity further code where I change same data and now I want to s
  • 网格列不起作用? [复制]

    这个问题在这里已经有答案了 我有这个标记
  • 未捕获的类型错误:$(...).fullCalendar 不是函数(...)

    document ready function page is now ready initialize the calendar calendar fullCalendar put your options and callbacks h
  • 在 iOS 8 上自定义 UISegmentedControl

    iOS 7 和 8 似乎使自定义 UISegmentedControl 的旧方法不再完全起作用 我一直像过去一样设置分隔线图像和所有内容 但似乎有一些以前的 iOS 版本中不存在的新状态 因此出现了一些奇怪的视觉效果 这是我正在使用的代码
  • 具有自定义配置的 UICollectionView 列表 - 如何将单元格中的更改传递到视图控制器?

    我已经实现了UICollectionView自定义列表UICollectionViewCell and UIContentConfiguration使用新的iOS 14API 我一直在关注这个教程 https swiftsenpai com
  • hashMap、List 和 Set 的数据结构

    任何人都可以指导我深入了解所使用的数据结构以及它是如何在 Util Collection 页面的列表 集合和映射中实现的 在面试中 大多数问题都是关于算法的 但我从未在任何地方看到过实现细节 有人可以分享一下信息吗 要了解 Java 如何实
  • 我可以从应用程序中抛出哪些内置 .NET 异常?

    如果我需要从应用程序中引发异常 我可以使用哪些内置 NET 异常类 他们都是公平的游戏吗 我什么时候应该自己导出 See 创建和抛出异常 http msdn microsoft com en us library ms173163 aspx