为什么要创建自定义异常? [关闭]

2023-12-31

为什么我们需要创建自定义异常.NET?


特定的自定义异常允许您为 catch 语句隔离不同的错误类型。异常处理的常见结构是这样的:

try
{}
catch (Exception ex)
{}

这抓住了all异常,与类型无关。但是,如果您有自定义异常,则可以为每种类型设置单独的处理程序:

try
{}
catch (CustomException1 ex1)
{
    //handle CustomException1 type errors here
}
catch (CustomException2 ex2)
{
    //handle CustomException2 type errors here
}
catch (Exception ex)
{
    //handle all other types of exceptions here
}

因此,特定异常可以让您更好地控制异常处理。不仅自定义异常共享此优势,.NET 系统库中的所有其他异常类型也共享此优势。

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

为什么要创建自定义异常? [关闭] 的相关文章

  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 使用.Net/C# 计算集合的频率分布

    是否有一种快速 简单的方法来使用 Linq 或其他方式计算 Net 集合的频率分布 例如 任意长的 List 包含许多重复项 遍历列表并计算 跟踪重复次数的巧妙方法是什么 查找列表中重复项的最简单方法是将其分组 如下所示 var dups
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • 当文件流没有新数据时如何防止fgets阻塞

    我有一个popen 执行的函数tail f sometextfile 只要文件流中有数据显然我就可以通过fgets 现在 如果没有新数据来自尾部 fgets 挂起 我试过ferror and feof 无济于事 我怎样才能确定fgets 当
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template

随机推荐

  • 扩展Qt标准图标

    如何扩展 QStyle 类提供的标准图标并支持 Windows 和 Linux namespace Ui class TVLoader class TVLoader public QMainWindow Q OBJECT public ex
  • 查询 MongoDb 中的嵌套数组

    我想通过嵌套数组中存在的字符串来检索文档 例如 数据 表示句子的依存解析 如下所示 tuples xcomp multiply using det method the nn method foil dobj using method 我发
  • CPU预测和内存屏障

    我正在学习记忆障碍所以我提到记忆障碍 https www kernel org doc Documentation memory barriers txtLinux 内核源代码中的文档 还有一个描述我无法理解 控制依赖关系可能有点棘手 因为
  • C 标准是否允许为指针分配任意值并递增它?

    这段代码的行为定义是否明确 include
  • 如何将 Writer 转换为字符串

    Writer writer new Writer String data writer toString the value is not casting and displaying null 还有其他方法可以将 writer 转换为字符
  • Vue.js 无法切换字体很棒的图标

    我正在尝试根据布尔值切换很棒的字体图标 但看起来很棒的字体图标在绘制后仍保留在屏幕上 https jsfiddle net 50wL7mdz 200312 https jsfiddle net 50wL7mdz 200312 HTML
  • 实体框架 - Linq To 实体 - 多对多查询问题

    我在查询 Linq To Entities 中的多对多关系时遇到问题 我基本上尝试使用 Linq 复制此查询 Select FROM Customer LEFT JOIN CustomerInterest ON Customer Custo
  • 从 Play 框架 (Scala) 中的 play.api.mvc.Action[AnyContent] 获取响应正文

    我有以下 Play Scala 代码 object Experiment extends Controller routes file directs genki here def genki name String Action pipe
  • Worker调度算法

    问题 这就是我想要解决的问题的本质 我们有工作人员在周末的固定时间在托儿所照顾孩子 一个周末有 16 个不同的时段需要填补 因此 对于为期 4 周的月份 需要填补 64 个空缺 我们最多有 30 名托儿所工人 尽管我们需要更多 有人喜欢孩子
  • 有没有办法在没有模型的情况下使用 formattastic 创建表单?

    我想使用 formattastic 来创建表单 但我没有与之相关的模型 带有用户名 密码和 openid URL 的登录表单 当然 我可以创建一个模型来做到这一点 但该模型只是一个黑客 其中没有任何有用的代码 您可以传递字符串而不是模型 它
  • paypal平行支付和链式支付的区别

    我需要实现一个支付网关 用户可以通过该网关在一笔交易中向两个卖家付款 所以我尝试了贝宝的两种选择 Paypal 并行支付 Paypal 链式支付 虽然两者都完美地满足了我的需求 但我很想知道哪一种更适合我的需求以及两种方法之间的区别 我还想
  • 大文本语料库破坏 tm_map

    在过去的几天里 我一直在为这个问题伤透脑筋 我搜索了所有 SO 档案并尝试了建议的解决方案 但似乎无法让它发挥作用 我在 2000 06 1995 99 等文件夹中有一组 txt 文档 并且想要运行一些基本的文本挖掘操作 例如创建文档术语矩
  • 带有 BigQuery 分区表的 BigQuery 数据传输服务 [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我可以访问 BigQuery 中的一个项目 我希望按摄取时间创建一个分区表 按天分区 然后设置一个 BigQuery 数据传输流程
  • MySQL全文检索布尔模式混乱

    当尝试在布尔模式下使用全文搜索设置搜索时 我有点困惑 这是我正在使用的查询 query SELECT MATCH title AGAINST q IN BOOLEAN MODE AS score FROM results WHERE MAT
  • GAS 不允许在 Team Drive 中以编程方式创建可安装的触发器

    我的公司一直在尝试使用 G Suite 将我们的流程转移到线上 由于某种原因 GAS 不允许我以可编程方式设置触发器并返回 异常 不允许操作 请参见下面的屏幕截图 1 3 请求授权 1 SO 不允许我发布两个以上的链接 这是一个屏幕截图 告
  • xcode 6 对象库为空(没有匹配项)

    我正在尝试按照说明创建 Hello World 但我的对象库中似乎没有任何内容 它只是在对话框中显示 没有匹配项 我在这里缺少什么 谢谢 我发现了一个解决方案 当我在助理编辑器中编辑情节提要时 就发生了这种情况 我关闭了助理编辑器并在主编辑
  • Javascript:从外部 CSS 文件中删除媒体查询

    如何删除从外部 css 文件加载的媒体查询 请注意 我无法禁用整个链接标记 因为该媒体查询中包含其他重要样式 body container media min width XXXpx 谢谢你 我强烈推荐纯 CSS 解决方案来解决这个问题 例
  • 如何删除应用程序快捷方式图标中的徽章?

    How to remove the badge in app shortcut icon in android When i create app shortcut programmatically along with the icon
  • Boost Asio async_wait 处理程序

    升压asiodeadline timer async wait函数正在采用以下形式的处理程序 void handler const boost system error code error 我如何定义一个处理程序来接收const boos
  • 为什么要创建自定义异常? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么我们需要创建自定义异常 NET 特定的自定义异常允许您为 catch 语句隔离不同的错误类型 异常处理的常见结构是这样的 try catc