问题标签 [exception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
exception - 可移植地处理 C++ 中的异常错误
我正在将 Visual C++ 应用程序移植到 GCC(应该建立在 MingW 和 Linux 上)。
现有代码__try { ... } __except(1) { ... }
在一些地方使用块,因此几乎没有什么(可能是内存不足类型错误?)会使程序退出而不做一些最小的日志记录。
用 GCC 做类似的事情有哪些选择?
编辑:感谢 Visual Studio 中指向 /EH 选项的指针,我现在需要一些关于如何在 Linux 上处理信号的示例。我从 2002 年发现了这条消息。
除了我应该注意的其他信号SIGFPE
吗SIGSEVG
?(主要关心那些可能从我做错事中提出的问题)
赏金信息:我希望我的应用程序能够在退出之前自行记录尽可能多的错误情况。
我可能会收到哪些信号,哪些信号通常不可能在之后记录错误消息?(内存不足,还有什么?)
我如何以一种可移植的方式处理异常和(最重要的)信号,使代码至少在 Linux 和 MingW 上运行相同。#ifdef 没问题。
我不只是有一个记录失败的包装进程的原因是,出于性能原因,我保存将一些数据写入磁盘直到最后一分钟,所以如果出现问题,我想尽一切可能尝试在之前写出数据退出。
database - 数据库异常处理最佳实践
您如何处理应用程序中的数据库异常?
您是在将数据传递给 DB 之前尝试验证数据还是仅仅依赖 DB 模式验证逻辑?
您是否尝试从某种数据库错误(例如超时)中恢复?
以下是一些方法:
- 在将数据传递给数据库之前验证数据
- 将验证留给 DB 并正确处理 DB 异常
- 验证双方
- 验证业务逻辑中一些明显的约束,并将复杂的验证留给 DB
你用什么方法?为什么?
更新:
我很高兴看到越来越多的讨论。
让我们尝试总结社区的答案。
建议:
- 验证双方
- 检查客户端的业务逻辑约束,让 DB从 hamishmcn进行完整性检查
- 尽早检查以避免ajmastrean打扰 DB
- 尽早检查以改善Will的用户体验
- 保留数据库交互代码以简化hamishmcn的开发
- 对象关系映射(NHibernate、Linq 等)可以帮助您处理来自 ajmastrean的约束
- Seb Nilsson出于安全原因需要客户端验证
你还有什么要说的吗?这将转换为验证特定问题。我们缺少核心,即“与数据库相关的错误最佳实践”,哪些要处理,哪些要冒泡?
debugging - 在空的 catch 块中调试异常
我正在调试一个生产应用程序,它有一堆空的 catch 块叹息:
当调试器在 IDE 中遇到问题时,有没有办法查看异常是什么?
.net - Web 服务中的异常
我的小组正在开发一个基于服务的 (.NET WCF) 应用程序,我们正在尝试决定如何处理内部服务中的异常。我们应该抛出异常吗?返回序列化为 XML 的异常?只返回错误代码?
请记住,用户永远不会看到这些异常,它仅适用于应用程序的其他部分。
c# - 要求通用方法在 FAIL 上抛出特定的异常类型
是的,我知道我完全会用这个看起来像个白痴,但今天早上我的大脑并没有开始运转。
我想有一种方法,我可以说“如果它变坏了,就带着这种类型的异常回来”,对吧?
例如,类似(这不起作用):
现在让我感到困惑的是,由于where子句,我们知道泛型类型将是异常类型。但是,代码失败了,因为我们不能将Exception隐式转换为ExType。我们也不能显式转换它,例如:
因为那也失败了..那么这种事情可能吗?我有一种强烈的感觉,它会变得非常简单,但是我和老头子度过了艰难的一天,所以让我放松一下:P
更新
谢谢大家的回答,看来我不是一个完全的白痴!;)
好的,所以Vegard和Sam让我可以实例化正确的类型,但显然卡住了,因为消息参数在实例化后是只读的。
马特的反应一针见血,我已经对此进行了测试,一切正常。这是示例代码:
甜的!:)
多谢你们!
c++ - 测量 C++ 中的异常处理开销
在 C++ 中测量异常处理开销/性能的最佳方法是什么?
请提供独立的代码示例。
我的目标是 Microsoft Visual C++ 2008 和 gcc。
我需要从以下情况中获得结果:
- 没有 try/catch 块时的开销
- 有 try/catch 块但不抛出异常时的开销
- 抛出异常时的开销
c# - C# 中是否有在给定线程上引发异常的好方法
我想写的代码是这样的:
我知道我可以让线程 B 以线程安全的方式定期检查线程 A 是否设置了标志,但这会使代码更加复杂。有没有更好的机制可以使用?
这是一个更充实的定期检查示例:
vb.net - 菜单条错误
我的用户在使用内置于 VB.NET 3.5 的 Windows 窗体应用程序时遇到间歇性错误。显然,当他们单击表单并重新绘制表单时,将在 MenuStrip 控件上绘制一个红色的“X”,并且应用程序将因以下错误而崩溃。
有没有人见过这个?有人可以指出我正确的方向吗?
java - 从 Java 中的 finally 块返回
最近我惊讶地发现在 Java 的 finally 块中可以有一个 return 语句。
似乎很多人认为按照“不要在 finally 子句中返回”中描述的那样做是一件坏事。再深入一点,我还发现“ Java 的返回并不总是”,它显示了 finally 块中其他类型的流控制的一些非常可怕的例子。
所以,我的问题是,谁能给我一个例子,在 finally 块中的 return 语句(或其他流控制)产生更好/更具可读性的代码?
c# - 无法处理故障异常
我有一个执行操作的 wcf 服务。在此操作中可能会出现故障。我已经说过我的服务合同可能有问题。
这是下面的代码;
在服务合同中;
当我在运行应用程序时 DoSomething() 方法抛出 FaultException 时,首先在“catch(Exception ex)”行捕获异常并在那里中断。然后当我再次按下 f5 时,它会执行通常的操作。我想知道为什么存在这种中断?如果不是,发布时会出现问题吗?