问题标签 [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.

0 投票
5 回答
2724 浏览

exception - 可移植地处理 C++ 中的异常错误

我正在将 Visual C++ 应用程序移植到 GCC(应该建立在 MingW 和 Linux 上)。

现有代码__try { ... } __except(1) { ... }在一些地方使用块,因此几乎没有什么(可能是内存不足类型错误?)会使程序退出而不做一些最小的日志记录。

用 GCC 做类似的事情有哪些选择?

编辑:感谢 Visual Studio 中指向 /EH 选项的指针,我现在需要一些关于如何在 Linux 上处理信号的示例。我从 2002 年发现了这条消息。

除了我应该注意的其他信号SIGFPESIGSEVG?(主要关心那些可能从做错事中提出的问题)

赏金信息:我希望我的应用程序能够在退出之前自行记录尽可能多的错误情况。

我可能会收到哪些信号,哪些信号通常不可能在之后记录错误消息?(内存不足,还有什么?)

我如何以一种可移植的方式处理异常和(最重要的)信号,使代码至少在 Linux 和 MingW 上运行相同。#ifdef 没问题。

我不只是有一个记录失败的包装进程的原因是,出于性能原因,我保存将一些数据写入磁盘直到最后一分钟,所以如果出现问题,我想尽一切可能尝试在之前写出数据退出。

0 投票
7 回答
6453 浏览

database - 数据库异常处理最佳实践

您如何处理应用程序中的数据库异常?
您是在将数据传递给 DB 之前尝试验证数据还是仅仅依赖 DB 模式验证逻辑?
您是否尝试从某种数据库错误(例如超时)中恢复?

以下是一些方法:

  1. 在将数据传递给数据库之前验证数据
  2. 将验证留给 DB 并正确处理 DB 异常
  3. 验证双方
  4. 验证业务逻辑中一些明显的约束,并将复杂的验证留给 DB

你用什么方法?为什么?

更新:

我很高兴看到越来越多的讨论。
让我们尝试总结社区的答案。

建议:

你还有什么要说的吗?这将转换为验证特定问题。我们缺少核心,即“与数据库相关的错误最佳实践”,哪些要处理,哪些要冒泡?

0 投票
7 回答
2688 浏览

debugging - 在空的 catch 块中调试异常

我正在调试一个生产应用程序,它有一堆空的 catch 块叹息

当调试器在 IDE 中遇到问题时,有没有办法查看异常是什么?

0 投票
5 回答
1113 浏览

.net - Web 服务中的异常

我的小组正在开发一个基于服务的 (.NET WCF) 应用程序,我们正在尝试决定如何处理内部服务中的异常。我们应该抛出异常吗?返回序列化为 XML 的异常?只返回错误代码?

请记住,用户永远不会看到这些异常,它仅适用于应用程序的其他部分。

0 投票
5 回答
6393 浏览

c# - 要求通用方法在 FAIL 上抛出特定的异常类型

是的,我知道我完全会用这个看起来像个白痴,但今天早上我的大脑并没有开始运转。

我想有一种方法,我可以说“如果它变坏了,就带着这种类型的异常回来”,对吧?

例如,类似(这不起作用):

现在让我感到困惑的是,由于where子句,我们知道泛型类型将是异常类型。但是,代码失败了,因为我们不能将Exception隐式转换为ExType。我们也不能显式转换它,例如:

因为那也失败了..那么这种事情可能吗?我有一种强烈的感觉,它会变得非常简单,但是我和老头子度过了艰难的一天,所以让我放松一下:P


更新

谢谢大家的回答,看来我不是一个完全的白痴!;)

好的,所以VegardSam让我可以实例化正确的类型,但显然卡住了,因为消息参数在实例化后是只读的。

马特的反应一针见血,我已经对此进行了测试,一切正常。这是示例代码:

甜的!:)

多谢你们!

0 投票
8 回答
13820 浏览

c++ - 测量 C++ 中的异常处理开销

在 C++ 中测量异常处理开销/性能的最佳方法是什么?

请提供独立的代码示例。

我的目标是 Microsoft Visual C++ 2008 和 gcc。

我需要从以下情况中获得结果:

  1. 没有 try/catch 块时的开销
  2. 有 try/catch 块但不抛出异常时的开销
  3. 抛出异常时的开销
0 投票
8 回答
8500 浏览

c# - C# 中是否有在给定线程上引发异常的好方法

我想写的代码是这样的:

我知道我可以让线程 B 以线程安全的方式定期检查线程 A 是否设置了标志,但这会使代码更加复杂。有没有更好的机制可以使用?

这是一个更充实的定期检查示例:

0 投票
4 回答
2240 浏览

vb.net - 菜单条错误

我的用户在使用内置于 VB.NET 3.5 的 Windows 窗体应用程序时遇到间歇性错误。显然,当他们单击表单并重新绘制表单时,将在 MenuStrip 控件上绘制一个红色的“X”,并且应用程序将因以下错误而崩溃。

有没有人见过这个?有人可以指出我正确的方向吗?

0 投票
6 回答
66315 浏览

java - 从 Java 中的 finally 块返回

最近我惊讶地发现在 Java 的 finally 块中可以有一个 return 语句。

似乎很多人认为按照“不要在 finally 子句中返回”中描述的那样做是一件坏事。再深入一点,我还发现“ Java 的返回并不总是”,它显示了 finally 块中其他类型的流控制的一些非常可怕的例子。

所以,我的问题是,谁能给我一个例子,在 finally 块中的 return 语句(或其他流控制)产生更好/更具可读性的代码?

0 投票
5 回答
5293 浏览

c# - 无法处理故障异常

我有一个执行操作的 wcf 服务。在此操作中可能会出现故障。我已经说过我的服务合同可能有问题。

这是下面的代码;

在服务合同中;

当我在运行应用程序时 DoSomething() 方法抛出 FaultException 时,首先在“catch(Exception ex)”行捕获异常并在那里中断。然后当我再次按下 f5 时,它会执行通常的操作。我想知道为什么存在这种中断?如果不是,发布时会出现问题吗?