设计模式:异常/错误处理

2023-12-27

是否有任何资源(网络或书籍)描述异常处理/错误处理设计模式?

有很多关于如何编写干净代码的文献,也有很多涉及设计模式的书籍。然而,我从未见过任何设计模式涵盖以下问题:在何处以及如何最好地处理错误,以及如何最好地将低级函数中出现的错误向上传播到抽象级别。


这些模式和最佳实践通常与特定的平台/语言绑定,因此它们是寻找它们的第一个地方。

  • 异常模式维基 http://c2.com/cgi/wiki?ExceptionPatterns是通用模式资源。

作为示例,请检查以下 java 链接:

  • 异常处理的最佳实践 http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html
  • 关于异常处理的 15 个最佳实践 http://codebuild.blogspot.com/2012/01/15-best-practices-about-exception.html
  • 异常处理反模式 https://community.oracle.com/docs/DOC-983543

浏览这些材料将使您对异常处理机制有一个大致的了解。

另请检查其他 SO 问题:

  • 异常处理模式 https://stackoverflow.com/questions/4589750/exception-handling-pattern
  • Java 风格:正确处理异常 https://stackoverflow.com/questions/425281/java-style-properly-handling-exceptions?rq=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计模式:异常/错误处理 的相关文章

  • 捕获外部脚本文件中的 javascript 错误

    我有一点 JavaScript Jquery 工具的叠加层 http flowplayer org tools overlay index html 当放到错误使用它的页面上时可能会引发异常 我正在尝试优雅地处理它 我有一个通用的 wind
  • android 中的 lang.NumberFormatException

    我有以下代码 除了在后台线程中从数据库读取一些值并使用这些值之外什么也不做 我使用 jar 绘制折线图 对于我用于每个数组值的折线图 问题是第三个我传递给绘制 LineChart 的构造函数的参数是 float float viteza S
  • DbContext.SaveChangesAsync 异常处理

    当搭建新的脚手架时ApiController通过 Visual Studio 2013 中的异步操作和实体框架支持 某些方法可以包装DbContext SaveChangesAsync https msdn microsoft com en
  • 您网站上的自定义 jQuery 脚本有多少行代码?多少才算是太多呢?

    对于我们的网站 我使用了大量 jQuery 现在我正在查看基础库顶部的 340 行 jQuery 代码 多少是太多了 我将添加更多内容 我什么时候开始尝试压缩代码并最终转向 OOP 行数并不意味着什么 重要的是你实际上在做什么 您可能拥有
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 是否可以在进入finally块之前检测是否发生异常?

    在Java中 有没有一种优雅的方法来检测在运行finally块之前是否发生异常 在处理 close 语句时 通常需要在finally 块中进行异常处理 理想情况下 我们希望维护这两个异常并将它们向上传播 因为它们都可能包含有用的信息 我能想
  • 用更好的模式替换开关(Javascript)

    我必须升级我的应用程序以根据用户类型和角色属性显示页面 目前 我使用一个简单的 switch 语句来根据用户类型来执行此操作 例如 switch type case a return CONSTANT ONE case b return C
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 内联汇编跳转后抛出 C++ 异常

    我有一些奇怪的自修改代码 但其根源是一个非常简单的问题 我希望能够执行jmp or a call 然后从该任意点抛出一个异常并让包含该异常的 try catch 块捕获该异常jmp call 但是当我这样做时 在 gcc 4 4 1 x86
  • Java:BufferedReader readLine() 中的 IOEXception 有何用途?

    我可以使用 try catch 循环 修复 以下异常 但我无法理解原因 为什么 in readLine 部分会不断引发IOExceptions 抛出此类异常的真正目的是什么 目标可能不仅仅是更多副作用 代码和 IOException jav
  • GWT CellTable getRowElement 抛出 IndexOutOfBoundsException

    我在 GWT 中使用 CellTable 并尝试在发生某些事件时向行添加样式 添加样式的代码如下 Range range playlistTable getVisibleRange int start range getStart for
  • CompletableFuture:whenCompleteAsync() 不允许我重新抛出异常

    我是 CompletableFuture 世界的新手 我正在尝试做一些负面测试 以允许我故意抛出异常的方式 该异常将决定通过 失败 这是代码片段 protected CompletableFuture
  • python请求:重试直到收到有效响应

    我想知道是否存在重试请求一定次数的常见模式 可能由于服务器错误或网络不良而失败 我想出了这个 并且我愿意在那里找到更好的实现 cnt 0 while cnt lt 3 try response requests get uri if res
  • 抛出 UnsupportedOperationException

    因此其中一种方法的描述如下 public BasicLinkedList addToFront T data 该操作无效 对于排序列表 将生成 UnsupportedOperationException 使用消息 排序列表的操作无效 我的代
  • Python 中的“finally”总是执行吗?

    对于Python中任何可能的try finally块 是否保证finally块总是会被执行吗 例如 假设我在except block try 1 0 except ZeroDivisionError return finally print
  • Asyncio:从未检索到任务异常的怪异

    假设我有一个简单的代码 import asyncio async def exc print 1 0 loop asyncio get event loop loop create task exc try loop run forever
  • PostgreSQL 自定义异常条件

    当我提出异常时是否可以创建自定义条件 考虑以下示例 BEGIN y x 0 EXCEPTION WHEN division by zero THEN RAISE NOTICE caught division by zero RETURN x
  • PHP 中的致命错误是什么意思?

    我收到以下错误 致命错误 未捕获错误 调用未定义的函数 var dumb 这是什么意思 致命错误是什么意思 这是一个导致脚本中止并立即退出的错误 致命错误之后的所有语句都不会被执行
  • REST API 登录模式

    我正在创建一个 REST api 严格遵循 apigee 建议 使用名词而不是动词 将 api 版本烘焙到 URL 中 每个集合有两个 api 路径 GET POST PUT DELETE 用法等 我正在开发登录系统 但不确定登录用户的正确
  • 尝试后终于没有被调用

    由于某种原因 在我的控制台应用程序中 我无法运行我的finally 块 我编写这段代码是为了测试finally块是如何工作的 所以它非常简单 static void Main int i 0 try int j 1 i Generate a

随机推荐

  • tcp:为什么只有第二次调用 Socket.Receive(byte[]) 返回数据?

    我的情况很典型 我需要通过 TCP 向服务器发送 请求 并接收响应 socket is connected socket Send CreateRequest byte br new byte VERY BIG BUFFER int cou
  • 使用nodejs对cassandra表上100,000个用户的记录应用更新查询。连接繁忙问题

    我正在使用 cassandra 3 x 和节点 10 13 0 我的工作记忆中有 100 000 个用户的数据 在给定代码中的地图 sortedRowMap 中 我通过迭代用户使用的地图 有 100 000 条记录 来更新所有记录 但它给我
  • 在字嵌入层中使用来自 fasttext 的 OOV 令牌中的子字信息 (keras/tensorflow)

    我有自己的 Fasttext 模型 并用它训练了带有词嵌入层的 keras 分类模型 但是 我想知道如何利用模型的子词信息来处理 OOV 单词 由于词嵌入层通过索引操作来查找词向量 而 OOV 词没有索引 即使 OOV 标记有索引 我如何为
  • MarkDown 源代码中的正则表达式惰性量词和否定类

    我正在浏览MarkDown http daringfireball net projects markdown John Gruber 用 Perl 编写的代码 有一个名为 Detab将制表符转换为空格 同时保留文本的缩进 有问题的代码行是
  • 无法解析模块“./index”

    过去几天 我的代码中一直收到无法解析模块索引的消息 并找到了临时解决方案 但无法找到永久修复 在过去的几天里 我一直收到此错误 并且当我运行 npm start reset cache 时找到了临时解决方案 但是每当我再次运行 react
  • 在 Google Colaboratory 上安装 faiss

    我尝试按照说明进行操作缪斯计划 https github com facebookresearch MUSE 他们需要 PyTorch 和 Faiss PyTorch 易于安装 但我发现安装有问题Faiss https github com
  • Bulma css 与 select2 jquery 插件

    我尝试实施select2 https select2 github io examples html插件使用Bulma http bulma io documentation elements form css框架 但前端看起来很混乱 我使
  • Gradle 编译依赖项未包含在 Jar 中

    我有一个 jar build plugins jar 其中包含一个 gradle 插件 该插件是在 build gradle 中使用此构建的 apply plugin java dependencies compile gradleApi
  • 服务器端 javascript - 经典 asp

    在客户端 JavaScript 中 this 运算符是窗口对象 经典 asp 服务器端 javascript 中的 this 运算符是什么 在下面的代码中 当在经典 ASP 服务器端运行时 this 引用是什么 test function
  • MySQL 版本与发行版号

    键入 mysql version 在 Linux shell 中执行命令 我得到以下信息 mysql Ver 14 12 Distrib 5 0 77 for redhat linux gnu i686 using readline 5 1
  • ANDROID - 使用 openCV 进行颜色检测 - 如何?

    我的目标是使用 HSV 颜色空间以仅显示黄色对象的方式显示脱粒图像 我使用这个代码 基于 openCV 2 3 1 android 示例给出的代码 protected Bitmap processFrame VideoCapture cap
  • 如何在 Refit 中禁用 urlencoding get-params?

    我使用 Refit 进行 RestAPI 我需要创建相同的查询字符串api item c 14 c 74 在改装界面中我创建了方法 Get item Task
  • Angular 2 Header组件标题根据状态动态变化

    我有一个使用 Angular 2 的设计 其中标题组件 导航栏组件和主体组件加载所有其他组件 如下图所示 Header 导航 其他组件加载的位置 此部分可能嵌套 组件 子组件 所以基本上 在标题组件中 我想显示当前状态 在当前状态的底部 我
  • OSX Lion 上的 SDL 与 g++

    有人知道如何在 OSX Lion 上设置 SDL 简单直接媒体层 以便我可以使用 g 编译我的代码吗 我已阅读该包附带的 自述文件 并将框架文件夹放置在相关目录中 但是 这似乎还不够 谁能帮我 我不想使用Xcode 如果您不使用 XCode
  • 新安装的 WAMP 中有奇怪的字符吗?

    我越来越奇怪的人物在我新安装的本地 WAMP 中 我刚刚从 ftp 在线下载了所有 php 文件 并在本地 mysql 服务器上恢复了备份 仅当文本包含以下内容时才会出现此问题符号或特殊字符 PHP MySQL 排序规则 latin1 sw
  • ThreadJob:无法从 BeginProcessing、... EndProcessing 方法的重写之外调用 WriteObject 和 WriteError?

    我已经安装了 ThreadJob 并且以下代码工作正常 commands r1 Start Sleep Seconds 3 r1 r2 Start Sleep Seconds 3 r2 jobs commands ForEach Objec
  • 为什么我的所有线程都使用 sleep() 进行睡眠?

    我在网上看到了下面一段关于 Linux 线程的代码 但是当我运行它时 所有线程似乎都在睡眠 而不仅仅是主线程 为什么 另外 如果没有 sleep 5 线程创建成功 语句会运行 3 次而不是 2 次 有人可以解释一下这种行为吗 谢谢 编译使用
  • 从解决方案自动生成类图?

    有没有一个免费的工具可以为我们创建类图 我们希望在解决方案上运行它 并让软件为我们生成类和相互关系的完整图表 最好有类似 UML 的图表 我们目前有 VSTS 2008 如果能内置它就太好了 您可以在 Visual Studio 中创建类图
  • Java 读取带有补充 unicode 字符的字符流

    我在使用 Java 读取补充 unicode 字符时遇到问题 我有一个文件可能包含补充集中的字符 任何大于 uFFFF 的字符 当我设置 InputStreamReader 使用 UTF 8 读取文件时 我希望 read 方法为每个补充字符
  • 设计模式:异常/错误处理

    是否有任何资源 网络或书籍 描述异常处理 错误处理设计模式 有很多关于如何编写干净代码的文献 也有很多涉及设计模式的书籍 然而 我从未见过任何设计模式涵盖以下问题 在何处以及如何最好地处理错误 以及如何最好地将低级函数中出现的错误向上传播到