问题标签 [error-handling]

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 回答
1971 浏览

使用对象属性作为方法属性的默认值

我正在尝试这样做(这会产生意外的 T_VARIABLE 错误):

我不想在其中输入一个幻数来表示重量,因为我使用的对象有一个"defaultWeight"参数,如果您不指定重量,所有新货物都会获得该参数。我不能将其defaultWeight放入货件本身,因为它会从货件组更改为货件组。有没有比以下更好的方法?

0 投票
4 回答
2405 浏览

减少 C# 中重复的错误处理代码?

我从来没有对异常处理的工作方式完全满意,有很多异常和 try/catch 带来的表(堆栈展开等),但它似乎在这个过程中破坏了很多 OO 模型。

无论如何,这是问题所在:

假设您有一些类包装或包含网络文件 IO 操作(例如,在某处的某个特定 UNC 路径读取和写入某些文件)。由于各种原因,您不希望这些 IO 操作失败,因此,如果您检测到它们失败,则重试它们并继续重试它们,直到它们成功或达到超时。我已经有一个方便的 RetryTimer 类,我可以实例化并使用它在重试之间休眠当前线程,并确定超时时间何时结束,等等。

问题是你在这个类的几个方法中有一堆 IO 操作,你需要将它们中的每一个都包装在 try-catch / retry 逻辑中。

这是一个示例代码片段:

那么,如何避免为整个班级的每个文件 IO 操作重复大部分代码呢?我的解决方案是在执行传递给它的委托块的类中使用匿名委托块和单个方法。这让我可以用其他方法做这样的事情:

我有点喜欢这个,但它还有很多不足之处。我想听听其他人如何解决这类问题。

0 投票
5 回答
16167 浏览

winforms控制的全局异常处理

在处理 ASP.NET 1.1 项目时,我总是使用 Global.asax 来捕获所有错误。我正在寻找一种类似的方法来捕获 Windows 窗体用户控件中的所有异常,该控件最终成为托管的 IE 控件。做这样的事情的正确方法是什么?

0 投票
8 回答
1079 浏览

使用未处理的异常而不是 Contains()?

想象一下,您正在使用的一个对象具有与其关联的其他对象的集合,例如 WinForm 上的 Controls 集合。您想检查集合中的某个对象,但该集合没有Contains()方法。有几种方法可以解决这个问题。

  • Contains()通过遍历集合中的所有项目来实现您自己的方法,以查看其中一项是否是您正在寻找的。这似乎是“最佳实践”方法。
  • 我最近遇到了一些代码,其中尝试访问 try 语句中的对象,而不是循环,如下所示:

我的问题是您认为第二种选择的编程实践有多差,为什么?与通过集合的循环相比,它的性能如何?

0 投票
8 回答
38193 浏览

如何在 ASP.NET 应用程序中记录错误(异常)?

我正在寻找在 ASP.NET 应用程序中记录错误的最佳方法。我希望能够在我的应用程序中发生错误时接收电子邮件,其中包含有关异常和当前请求的详细信息。

在我的公司中,我们曾经有自己的 ErrorMailer,可以捕获 Global.asax Application_Error 中的所有内容。这是“好的”,但不是很灵活也不是可配置的。

我们最近切换到 NLog。它更具可配置性,我们可以为错误定义不同的目标,过滤它们,缓冲它们(尚未尝试)。这是一个非常好的改进。

但我最近发现.Net 框架中有一个完整的命名空间用于此目的:System.Web.Management,它可以在 web.config 的healthMonitoring部分进行配置。

您曾经使用过 .Net 健康监控吗?您的错误记录解决方案是什么?

0 投票
2 回答
327 浏览

有没有一种方法可以处理 RDML 中 COM 对象的错误?

有没有一种方法可以处理 RDML 中 COM 对象的错误?例如,当调用 Word VBA 之类的方法时PasteSpecial,会返回错误并且 LANSA 应用程序崩溃。我在文档中找不到任何允许处理这些错误的内容。

实际上,错误处理通常是 LANSA 和 RDML 的弱点,但这是另一个话题。

0 投票
4 回答
5482 浏览

从 SharePoint 工作流报告错误的最佳方式是什么?

我在工作流程中有一个自定义操作,并且想在出现问题时向用户报告错误。这样做的最佳方法是什么?

UPD:理想情况下,我希望将工作流置于错误状态并将消息记录到工作流日志中。这似乎不可能。我能到达的最接近的地方是什么?我想要一个可重用的解决方案,当用户在 SharePoint Designer 中使用我的自定义操作时,它很容易设置。


为问题添加了更多详细信息。

@mauro 负责存储错误,但是如何以有意义的方式向用户显示错误?

@AdamSane 这似乎是一个相当脆弱的解决方案。这不是在单个站点上设置一次的问题。我需要其他人可以使用 SPD 添加的东西。

0 投票
7 回答
6574 浏览

如何在 PHP 中记录未捕获的异常?

我发现了如何将错误转换为异常,如果它们没有被捕获,我会很好地显示它们,但我不知道如何以有用的方式记录它们。简单地将它们写入文件是没有用的,不是吗?当您还不知道导致异常的原因时,您是否会冒险访问数据库?

0 投票
6 回答
109598 浏览

如何捕获 SQLServer 超时异常

我需要专门捕获 SQL Server 超时异常,以便以不同方式处理它们。我知道我可以捕获 SqlException 然后检查消息字符串是否包含“超时”但想知道是否有更好的方法来做到这一点?

0 投票
3 回答
3908 浏览

如何使用 .NET 2.0 在 using 块中捕获异常?

这些天,当我有一个实现 IDisposable 的对象时,我越来越多地尝试利用 using 块,但我还没有弄清楚的一件事是如何像在正常的 try/catch/finally 中那样捕获异常......任何代码示例可以为我指明正确的方向?

编辑:阅读回复后修改了问题。它是“如何使用 .NET 2.0 在 using 块中引发异常?” 但我实际上是在寻找一种在 using 块中捕获这些异常的方法。


我正在寻找更多关于在 using 块内滚动我自己的捕获块的详细信息。

编辑:我想避免的是必须在我的 using 块中使用 try/catch/finally,就像 @Blair 显示的那样。但也许这不是问题......

编辑:@Blair,这正是我想要的,感谢您的详细回复!