异常与验证

2024-02-03

我刚刚遇到一个捕获异常的属性设置器(所有异常;我知道这很糟糕,但与这里无关),并且only记录它们。首先,我认为也应该通过他们;当您可以立即知道出现问题时,为什么要等待崩溃和日志研究呢?

然而,我的主要问题是,我是否要验证无效的日期值,将 RuleViolation 对象添加到我的文档上的 ValidationRules 对象,或者抛出 InvalidDate 异常,或者只是让 CLR 为我抛出异常(无效日期只不过是无效的)日期,未检查范围等)


这取决于手头的具体任务。如果您正在编写一个将用作其他程序中的组件的库类,并且该类的方法的约定表明它应该只接受有效日期,那么抛出异常就可以了。

如果您接受用户输入然后等待异常是一个不好的做法。在这种情况下,您应该自己验证日期。

例外是针对特殊情况的,不应该成为您逻辑的一部分。这通常意味着程序员违反了合同。

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

异常与验证 的相关文章

  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 在调用堆栈中看到大量 clr!CLR Semaphore::Wait

    我们看到很多像下面这样的调用堆栈 我可以知道什么条件 情况会发生这种情况吗 OS Thread Id 0x48654 559 Current frame ntdll NtWaitForSingleObject 0xa Child SP Re
  • Dotnet“新”命令不适用于 Framework 4.5?

    我正在尝试使用 dotnet 创建 4 5 框架类库项目new命令如下 dotnet new classlib lang C f net45 o TestProject 错误 无效参数 f 网络45 net45 不是 f 框架 的有效值 如
  • 将 Python 控制台集成到 GUI C++ 应用程序中

    I m going to add a python console widget into a C GUI below some other controls 许多类将暴露给 python 代码 包括一些对 GUI 的访问 也许我会考虑 P
  • 在 C# 中调用事件处理程序

    我一直在尝试学习如何在 C 中使用事件处理程序 但我无法弄清楚 handler this e 在以下代码中的作用 public event EventHandler ThresholdReached protected virtual vo
  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • 如何使用boost库读取和写入.ini文件[重复]

    这个问题在这里已经有答案了 如何使用boost库读取和写入 或修改 ini文件 With Boost PropertyTree您可以读取并更新树 然后写入文件 请参阅load and save功能 看一下如何访问属性树中的数据 http w
  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • 在 C++ 中使用表达式模板进行符号微分

    如何在 C 中使用表达式模板实现符号微分 一般来说 您需要一种表示符号的方法 即编码的表达式模板 例如3 x x 42 以及一个可以计算导数的元函数 希望您对 C 中的元编程足够熟悉 知道这意味着什么和需要什么 但可以给您一个想法 This
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一
  • WinForms - 表单大小错误

    我们有以下代码 private void MainForm Shown object sender EventArgs e RepositionForm private void RepositionForm Rectangle rect
  • C for 循环索引:新 CPU 中的前向索引更快吗?

    在我订阅的邮件列表上 两位知识渊博的 IMO 程序员正在讨论一些优化的代码 并说了以下内容 在 5 8 年前发布的 CPU 上 向后迭代 for 循环稍微快一些 e g for int i x 1 i gt 0 i 因为比较i归零比将其与其
  • 函数参数评估顺序[重复]

    这个问题在这里已经有答案了 在 C 和 C 中 函数参数的求值是否有固定的顺序 我的意思是 标准怎么说 是吗left to right or right to left 我从书中得到的信息令人困惑 是否有必要function call应该使
  • ASP.NET MVC 路由 - 向路由添加 .html 扩展名

    我对 MVC 和路由非常陌生 我被要求修改一个应用程序以使用不同的 url 由于我没有经验 这项任务对我来说有点困难 好吧 让我们谈谈一些代码 routes MapRoute CategoryBySeName Route name prod
  • 参数数量在编译时确定的 Lambda 函数

    我想声明一个带有 N 个参数的 lambda 函数 其中 N 是模板参数 就像是 template
  • 未找到 _sqlite3_open 等符号错误

    您好 我收到此错误 Undefined symbols sqlite3 open referenced from main in ccRlWVer o sqliite3 close referenced from main in ccRlW
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c
  • 如何从尖点库矩阵格式获取原始指针

    我需要从尖点库矩阵格式获取原始指针 例如 cusp coo matrix
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

  • 我可以拆分grails的config.groovy文件吗?

    由于里面有敏感代码config groovy文件 我担心我的朋友会犯这个文件中的错误 当得到svn更新后 我们也会得到有问题的配置代码 我可以将代码拆分为config groovy是否可以使敏感代码保持不变 而其他代码可以经常更改 在主配置
  • Matlab模拟:点(符号)从起点移动到终点并返回

    我想创建一个动画来演示基于 LDPC 编码和积算法 http en wikipedia org wiki Belief propagation 到目前为止 我已经创建了一个图表 显示符号节点 左 和奇偶校验节点 右 之间的连接替代文本htt
  • 您将如何使用 Sklearn 的 VotingClassifier 进行 RandomizedSearchCV ?

    我正在尝试调整我的投票分类器 我想在 Sklearn 中使用随机搜索 但是 由于我当前使用两种算法 不同的树算法 如何为我的投票分类器设置参数列表 我是否必须单独运行随机搜索并稍后在投票分类器中将它们组合在一起 有人可以帮忙吗 代码示例将受
  • Docker Maven Spotify 插件 - 可以切换到非安全注册表

    我正在使用Spotify Maven 插件 http mvnrepository com artifact com spotify docker maven plugin在执行某些 Maven 目标时自动构建和部署 docker 镜像 但是
  • jQuery if 语句,语法

    什么是一个简单的 jQuery 语句 该语句声明仅当 A 和 B 为 true 时操作才会继续 如果 A 不为真 则停止 如果 A 和 B 为真 则继续 jQuery 只是一个增强 Web 浏览器中 DOM 功能的库 底层语言是 JavaS
  • 使用 org.postgresql.core.Utils.escapeLiteral 足以防止 SQL 注入吗?

    在构建 SQL 查询和更新以提交到我的数据库之前 我需要清理一些用户输入的数据 我知道最好使用准备好的陈述 https www owasp org index php SQL Injection Prevention Cheat Sheet
  • 为什么 C++ 编译器不做更好的常量折叠?

    我正在研究加速大部分 C 代码的方法 该代码具有用于计算雅可比的自动导数 这涉及在实际残差中做一些工作 但大部分工作 基于分析的执行时间 是计算雅可比矩阵 这让我感到惊讶 因为大多数雅可比都是从 0 和 1 向前传播 所以工作量应该是函数的
  • 导入 R. (android)

    我已经通过 Stack Overflow 进行了搜索 因为我知道这是一个常见问题 但似乎没有一个解决方案适合我 这包括清理我的项目 删除所有导入 删除项目并完全重新开始 我正在使用 Eclipse 专门用于 mac 上的 android A
  • 使用最大流算法查找网络的边缘连通性

    我想使用最大流算法 Edmond Karp Ford Fulkerson 算法 找到无向图的边连通性 即要删除以断开图连接的最小边数 我知道我可以通过找到图的每两个节点之间的最小最大流量来完成此任务 但这将导致 O V 2 数量的流量网络
  • Twitter Bootstrap CSS 静态流体表单定位

    我正在使用 Twitter Bootstrap 框架尝试获得如下布局 现在看起来是这样的 jsFiddle 全屏 https jsfiddle net flackend YxKfc show jsFiddle https jsfiddle
  • Spring Boot 关闭钩子

    如何注册 添加在 Spring Boot 应用程序关闭时触发的自定义关闭例程 场景 我将 Spring Boot 应用程序部署到 Jetty servlet 容器 即没有嵌入式 Jetty 我的应用程序使用 Logback 进行日志记录 并
  • 夏令时持续时间

    我有一个对象Shift 有两个字段 startDateTime and endDateTime as DateTime来自乔达时间 我的轮班包括英国夏令时的变化 它开始于25 03 2017 13 00并结束于26 03 2017 02 0
  • 如何在C#中动态阻止网站?

    我想从用 C 编写的 Windows 服务动态阻止某些 URL 我不想通过写入主机文件来做到这一点 例如我想阻止该网址http example com 在所有浏览器中 但也会阻止http example com another早上 7 点到
  • Objective C /C 中的命名约定,以“_”开头?

    我看到 ppl 定义变量是这样的 b2World world b2Body body CCSprite ball 代替 b2World world b2Body body CCSprite ball 我熟悉第二个 但不熟悉第一个 于是 我查
  • css 显示:表格第一列太宽

    我有一个像这样的 css 表设置 div class table div span name span span details span div div 表格的 css 是 table display table width 100 ta
  • 获取 PrintDialog 的模式对话框句柄

    我在 net 2 0 上有一个 Windows 应用程序 在Form1 我打开一个PrintDialog 如何从我的代码中获取该对话框的句柄 我尝试了很多win32功能 EnumWindows EnumChildWindows FindWi
  • 如何禁用 React JS 应用程序的源映射

    我的反应文件夹结构如下 我没有使用过 create react app 版本 我尝试使用GENERATE SOURCEMAP false 但这没有用 在哪里可以找到 map 文件 我怎样才能删除这些文件 我找不到构建文件夹 我尝试使用下面的
  • 如果名称和日期匹配两个 API JSON 数据,如何求和?

    有两个 API 请求 URL 这是第一个 API 请求 URL 和数据来自 http 127 0 0 1 8000 api onlineUserData onlineUserData Month Amania Shyral Dorpan N
  • 将 XML 发布到经典 asp 页面并检索页面上的发布数据

    为了在经典的 ASP 页面上发布数据 我使用下面的代码 Dim stringXML httpRequest postResponse stringXML
  • 异常与验证

    我刚刚遇到一个捕获异常的属性设置器 所有异常 我知道这很糟糕 但与这里无关 并且only记录它们 首先 我认为也应该通过他们 当您可以立即知道出现问题时 为什么要等待崩溃和日志研究呢 然而 我的主要问题是 我是否要验证无效的日期值 将 Ru