exception-handling相关内容

C++ 在异常时显示堆栈跟踪

如果抛出异常,我想有一种方法向用户报告堆栈跟踪.做这个的最好方式是什么?是否需要大量额外的代码? 回答问题: 如果可能的话,我希望它是便携的.我希望弹出信息,以便用户可以复制堆栈跟踪,并在出现错误时通过电子邮件将其发送给我. 解决方案 这取决于哪个平台. 在 GCC 上,这非常简单,请参阅 这篇文章了解更多详情. 在 MSVC 上,您可以使用 StackWalker ..
发布时间:2021-12-17 16:43:13 C/C++开发

在 Python 中使用 try-except-else 是一个好习惯吗?

在 Python 中,我时不时地看到块: 尝试:try_this(随便)除了 SomeException 作为例外:#处理异常别的:返回一些东西 try-except-else 存在的原因是什么? 我不喜欢那种编程,因为它使用异常来执行流控制.但是,如果它包含在语言中,那么它肯定有充分的理由,不是吗? 我的理解是异常不是错误,它们应该只用于异常情况(例如,我尝试将文件写入磁盘但没有 ..
发布时间:2021-12-17 16:39:34 Python

为什么空的 catch 块是个坏主意?

我刚刚看到一个关于 try-catch 的问题,哪些人(包括 Jon Skeet)说空的 catch 块是一个非常糟糕的主意?为什么这个?有没有一种情况,空捕获不是错误的设计决策? 我的意思是,例如,有时您想从某个地方(网络服务、数据库)获取一些附加信息,而您真的不在乎是否会获取这些信息.所以你试着去获取它,如果有任何事情发生,那没关系,我会添加一个“catch (Exception ign ..
发布时间:2021-12-17 16:39:14 其他开发

捕获“堆栈溢出"递归 C++ 函数中的异常

是否可以在递归 C++ 函数中捕获堆栈溢出异常?如果是,怎么办? 那么在这种情况下会发生什么 void doWork(){尝试() {做工作();}抓住( ... ) {做工作();}} 我不是在寻找特定操作系统的答案.只是一般 解决方案 这本身并不是一个例外,但如果您只想将堆栈使用限制在一个固定的数量,您可以这样做: #include //这些将被设置在 main() 的顶 ..
发布时间:2021-12-16 08:30:56 C/C++开发

使用 node.js 进行 Javascript 异步异常处理

我目前正在开发一个 node.js 应用程序,但遇到了常见的异步代码问题. 我正在 Node 的 HTTP 模块之上实现一个服务服务器. 这个服务器支持(express like)路由.例如,我的代码如下所示: server.any("/someRoute",function(req,resp){resp.end("此文本通过http发送给客户端")}); 服务器需要能够承受故障, ..

如何处理 JPA 唯一约束违规?

当违反唯一约束时,会抛出 javax.persistence.RollbackException.但是引发 RollbackException 的原因可能有多种.我如何才能发现违反了唯一约束? 尝试{存储库.保存(文章);}抓住(javax.persistence.RollbackException e){//如何找出回滚异常的原因?} 解决方案 如何发现违反了唯一约束? 异常是链 ..
发布时间:2021-12-14 18:30:57 Java开发

Haskell 中的异常处理

我需要帮助理解三个 Haskell 函数的用法 try (Control.Exception.try :: Exception e => IO a -> IO (Either e a)) catch (Control.Exception.catch :: Exception e => IO a -> (e -> IO a) -> IO a) handle (Control.Excepti ..
发布时间:2021-12-14 11:54:34 其他开发

非详尽模式的更好例外,以防万一

当 GHCi 在运行时发现调用产生的值与函数的模式匹配不匹配时,有没有办法让 GHCi 产生更好的异常消息? 它目前给出了产生非穷举模式匹配的函数的行号,虽然有时有用,但确实需要一轮调试,有时我觉得这是一遍又一遍地做同样的事情.因此,在我尝试整理解决方案之前,我想看看是否还有其他解决方案. 一条异常消息,除了给出行号之外,还显示了它尝试进行的调用类型? 这甚至可能吗? 解决 ..
发布时间:2021-12-14 11:28:28 其他开发

如何找到在 C++ 中抛出异常的位置?

我有一个程序会在某处抛出未捕获的异常.我得到的只是抛出异常的报告,没有关于它在哪里抛出的信息.编译为包含调试符号的程序不通知我在我的代码中生成异常的位置似乎是不合逻辑的. 如果没有在 gdb 中设置“catch throw"并为每个抛出的异常调用回溯,有什么方法可以判断我的异常来自哪里? 解决方案 这里的一些信息可能对调试您的问题有用 如果异常未被捕获,特殊库函数std::te ..
发布时间:2021-12-14 08:35:55 C/C++开发

你如何实现全局 iPhone 异常处理?

我的 iPhone 应用程序发生了一次崩溃,它确实抛出了 NSException.崩溃报告对于错误在哪里以及究竟是什么原因完全不明确.有没有一种聪明的方法可以让我在某处设置顶级异常处理程序以查看导致它的原因?我自己无法重现这个问题,但我的一些测试版用户肯定可以. 处理此类问题的明智方法是什么? 解决方案 您似乎在这里问了两个问题:如何设置顶级异常处理程序;以及如何处理确定根本原因是什 ..

C#/Java“Try/Finally/Catch"Delphi 中的等效结构

在 Delphi 中,如何使用 try、finally 和 catch?Java/C# 等价物看起来像: 尝试{//打开数据库连接,开始事务} 捕获(异常 e){//回滚数据库事务} 最后 {//关闭数据库连接,提交事务} 如果你在 Delphi 中尝试这个,你可以使用 try/finally 或 try/except;但从来没有把三个都放在一起.我想要如下代码(无法编译): 试试//打开数 ..
发布时间:2021-12-13 23:39:27 其他开发

获取“递归收集数据契约"使用稍微复杂的方法引用 WCF 服务时

如果我在 WCF 服务中只使用简单的方法,则一切正常.但是,如果我包含以下方法,则会出现问题: [操作契约]公共列表>获取所有账户(){返回 AccountBusiness.GetAllAccounts();} 从另一个项目引用服务时出现此错误: 警告 5 自定义工具警告:无法导入 wsdl:portType详细信息:运行 WSDL 导入扩展时抛出异常:System.ServiceMod ..
发布时间:2021-12-13 20:16:58 C#/.NET

套接字连接已中止 - CommunicationException

原本: 我以为这是一个循环引用问题........结果不是. 问题是因为根本没有配置服务配置. 由于默认值非常低,发送大量数据会使服务崩溃. 场景: 似乎我的 WCF 服务中可能有循环引用,但使用“[DataContract(IsReference=true)]"并不能帮助修复它. 我收到错误消息“套接字连接已中止.这可能是由于处理您的消息时出错或远程主机超出接收超时,或基 ..
发布时间:2021-12-13 20:08:10 C#/.NET

为什么找不到我的自定义 WCF 行为扩展元素类型?

我有一个包含两个项目的解决方案.一个项目是 ASP.NET Web 应用程序项目,一个是类库.Web 应用程序具有对类库的项目引用.这些都不是强命名的. 在类库中,我将其称为“框架",我有一个端点行为(一个 IEndpointBehavior 实现)和一个配置元素(一个派生自 BehaviorExtensionsElement 的类).配置元素使我可以通过配置将端点行为附加到服务. 在 ..
发布时间:2021-12-13 20:06:06 C#/.NET