图书馆的异常处理策略

2024-01-01

构建 .NET 库时,您的异常处理策略是什么?具体来说,您关于处理库调用内的异常并将其暴露给调用代码的政策是什么?

例如,

  • 您是否会像对待其他函数一样对待库函数,从而让它无法处理的所有异常按原样流出?
  • 您会为该库创建自定义异常吗?
  • 您会捕获所有异常并抛出库的异常吗?您会将原始异常设置为库的异常内部异常吗?
  • 库对数据库的依赖将如何影响您的异常处理策略?

对于 .NET 库中的异常处理,您建议采用哪些准则和规则?


您是否会像对待其他函数一样对待库函数,从而让所有 它无法处理流出的异常 照原样吗?

是的,这绝对是默认策略。

您会为该库创建自定义异常吗?

是的,如果来电者可以对这种情况采取一些措施and为此,他们需要能够区分该异常与其他异常。但这种情况非常罕见。

库对数据库的依赖将如何影响您的异常处理策略?

数据库依赖项可能需要公开设置,让调用者指定库如何处理某些异常(例如,MaximumDeadlockRetries).

您会捕获所有异常并抛出库的异常吗? 你会设置原来的例外吗 作为图书馆的内部异常 例外?

不,并非所有例外。对于特定的异常,这是远程可能的,尽管我能想到的唯一可能想要执行此操作的情况是当我的库已经尝试处理异常(如上面的数据库场景中)并失败时。

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

图书馆的异常处理策略 的相关文章

  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 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 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 集合 <__NSCFSet: 0x1b0b30> 在枚举时发生了变化。如何确定是哪一套?

    我正在执行一堆核心数据插入 在大约 20k 插入并每 1 2k 保存一次后 我收到此错误 Terminating app due to uncaught exception NSGenericException reason Collect
  • Spring-boot:注册 mongodb 自定义转换器

    我将此依赖项用于我的 Spring Boot 服务
  • 在php中如何使用preg替换将url变成tinyurl

    我需要将包含长 url 的文本字符串转换为相同的字符串 但带有tinyurl 使用tinyurl api 例如 转变 blah blah blah http example com news sport blah blah blah int
  • 如何合并数值模型和嵌入序列模型来处理 RNN 中的类别

    我想为我的分类特征构建一个带有嵌入的单层 LSTM 模型 我目前有数字特征和一些分类特征 例如位置 它不能进行单热编码 例如使用pd get dummies 由于计算复杂性 这正是我最初打算做的 让我们想象一个例子 样本数据 data us
  • 检查SQL表是否存在

    以独立于数据库的方式检查 Sql 数据库中是否存在表的最佳方法是什么 我想出了 bool exists const string sqlStatement SELECT COUNT FROM my table try using OdbcC
  • 输入字符串的格式不正确#2

    double temp temp double Convert ToDouble 1234 5678 嘿 伙计们 女士们 我一生都无法弄清楚为什么上面的行不起作用 上面的行给了我一个运行时错误 未处理的类型异常 System FormatE
  • 计算带有 LIMIT 的 MySQL 记录

    当我尝试计算表中的记录数时 即使 SQL 语句有LIMIT进入其中 总体来说它是有效的 但是发生了一些奇怪的事情 代码 sql SELECT COUNT AS count FROM posts ORDER BY post date DESC
  • Angular2(RC-4):无法读取未定义的属性“pathsWithParams”

    在 angular2 RC 4 中使用子路由时出现此错误 无法读取未定义的属性 pathsWithParams 我的路由文件包含 export const routes RouterConfig path component HomeCom
  • Nodemailer 的邮件在 Azure 服务器上不起作用

    我正在尝试使用 Microsoft azure 上的 Express JS 服务器的 Nodemailer 邮件 api 发送邮件 它在本地计算机上取得成功 但在天蓝色服务器 远程 上却没有成功 任何想法 var mail require
  • CRTP——访问不完整类型成员

    相关问题 one https stackoverflow com questions 6006614 c static polymorphism crtp and using typedefs from derived classes tw
  • 如何在(功能)F# 中创建递归数据结构值?

    type 的值如何 type Tree Node of int Tree list 有一个以函数方式生成的引用自身的值吗 对于 Tree 的合适定义 结果值应等于以下 Python 代码中的 x x Tree x tlist x Edit
  • 将光标移动到 UITextField 的开头

    有没有办法让光标位于a的开头UITextField 当我显示带有内容的控件时 光标放置在文本的末尾 我想把它移到开头 UITextField符合UITextInput协议 它提供了让您控制所选范围的方法 这在我的测试中有效 void tex
  • Python:将 3D 椭球(扁形/长形)拟合到 3D 点

    亲爱的 stackoverflow 用户 我面临如下问题 我想在 python 脚本中将 3D 椭球体拟合到 3D 数据点 起始数据是一组 x y 和 z 坐标 笛卡尔坐标 我想要得到的是 3D 数据点凸包的最佳拟合椭球定义方程中的 a 和
  • AngularFire httpsCallable Object(...) 不是一个函数

    我想在我的 Ionic 3 应用程序中调用 httpsCallable 函数 我正在尝试遵循这些文档 https firebase google com docs functions callable https firebase goog
  • 在 Java 中实现双缓冲

    我有一个简单的 Java JFrame 画布 我每半秒左右更新一次屏幕上的内容 并且有闪烁 我想实现双缓冲来消除闪烁 但我对 Java 相当陌生 不熟悉如何做到这一点 我找到了一些例子 但不确定如何将他们的方法应用到我的方法中 以下是我现在
  • 删除 MS Excel 中特定字符左侧的所有文本

    这是一个与excel相关的问题 我想删除字符串中特定字符或多个字符左侧的所有文本 所有字符 例如 假设我的单元格中有一个字符串大家好 欢迎来到 stackoverflow 现在我想删除 堆栈 左侧的所有字符 意味着结果应该是堆栈溢出 仅限堆
  • WindowsBase.dll 中发生了“System.ComponentModel.Win32Exception”类型的第一次机会异常

    我有一个 NET 4 0 WPF 项目 当我打开文件对话框时 选择一些文件并按 确定 按钮 然后我在输出窗口中看到以下错误 WindowsBase dll 中发生了 System ComponentModel Win32Exception
  • Plotly r,按变量划分的线型

    我正在尝试制作一个散点图 其中线条样式由因子变量指定 就像颜色一样 但我无法让它工作 library plotly df lt data frame x rnorm 20 y rnorm 20 col c rep 1 10 rep 2 10
  • 将补充 Unicode 字符映射到 BMP(如果可能)

    我遇到了这样的问题 我的 XML 解析器 VTD XML 似乎无法处理 Unicode 补充字符 如果我在这里已经错了 请更正 看起来 解析器只使用这些字符的低 16 位 我无法切换到我正在处理的项目中的另一个解析器 我正在解析 Medli
  • 图书馆的异常处理策略

    构建 NET 库时 您的异常处理策略是什么 具体来说 您关于处理库调用内的异常并将其暴露给调用代码的政策是什么 例如 您是否会像对待其他函数一样对待库函数 从而让它无法处理的所有异常按原样流出 您会为该库创建自定义异常吗 您会捕获所有异常并