问题标签 [exception-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 投票
11 回答
43396 浏览

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

我有一个包含两个项目的解决方案。一个项目是 ASP.NET Web 应用程序项目,一个是类库。Web 应用程序具有对类库的项目引用。这些都不是强命名的。

在我将称之为“框架”的类库中,我有一个端点行为(一个 IEndpointBehavior 实现)和一个配置元素(一个从 BehaviorExtensionsElement 派生的类)。配置元素使我可以通过配置将端点行为附加到服务。

在 Web 应用程序中,我有一个启用 AJAX 的 WCF 服务。在 web.config 中,我将 AJAX 服务配置为使用我的自定义行为。配置的 system.serviceModel 部分非常标准,如下所示:

在运行时,这可以完美运行。启用 AJAX 的 WCF 服务正确使用我自定义配置的端点行为。

问题是当我尝试添加新的 AJAX WCF 服务时。如果我添加 -> 新项目...并选择“启用 AJAX 的 WCF 服务”,我可以看到它添加 .svc 文件和代码隐藏,但是当它更新 web.config 文件时,我收到此错误:

配置文件不是 WCF 服务库的有效配置文件。

无法加载为扩展“customEndpointBehavior”注册的类型“Framework.MyBehaviorExtensionsElement、Framework、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null”。

显然配置是完全有效的,因为它在运行时完美运行。如果我暂时从我的行为配置中删除该元素,然后添加启用 AJAX 的 WCF 服务,一切都会顺利进行。

不幸的是,在一个更大的项目中,我们将拥有多个具有不同配置的服务,暂时删除所有自定义行为将很容易出错。虽然我意识到我可以不使用向导并手动完成所有操作,但不是每个人都可以,而且能够按照它的用途使用该产品会很好 - 向导和所有。

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

更新/说明:

  • 它确实在运行时工作,而不是在设计时工作。
  • 当我尝试添加服务时,框架程序集位于 Web 项目的 bin 文件夹中。
  • 虽然我可以手动添加服务(“无需配置”),但我需要开箱即用的项目模板才能工作——这就是问题的全部目标。
  • 在 Visual Studio 2008 中可以看到此问题。在 VS 2010 中,此问题似乎已得到解决。

我在 Microsoft Connect 上提交了这个问题,结果你要么必须将自定义配置元素放在 GAC 中,要么将其放在 IDE 文件夹中。他们不会修复它,至少现在是这样。我已经发布了他们提供的解决方法作为这个问题的“答案”。

0 投票
3 回答
4631 浏览

c# - C# 相当于 VB.NET 的 Catch...When

在 VB.NET 中,我经常Catch…When

是否有相当于的 C# Catch…When

如果可能的话,我不想诉诸if在 a 中使用语句catch

0 投票
16 回答
73002 浏览

c# - Windows 窗体应用程序中异常处理的最佳实践?

我目前正在编写我的第一个 Windows 窗体应用程序。我现在已经阅读了几本 C# 书籍,因此我对 C# 必须处理异常的哪些语言特性有了一个相对较好的理解。它们都是非常理论化的,但是我还没有了解如何在我的应用程序中将基本概念转化为良好的异常处理模型。

有人愿意分享有关该主题的任何智慧珍珠吗?发布您看到像我这样的新手所犯的任何常见错误,以及有关以使我的应用程序更加稳定和健壮的方式处理异常的任何一般建议。

我目前正在努力解决的主要问题是:

  • 我什么时候应该重新抛出异常?
  • 我应该尝试使用某种中央错误处理机制吗?
  • 与先发制人地测试诸如磁盘上的文件是否存在之类的事情相比,处理可能引发的异常是否会影响性能?
  • 所有可执行代码都应该包含在 try-catch-finally 块中吗?
  • 是否有任何时候可以接受空的 catch 块?

感谢所有建议!

0 投票
5 回答
13070 浏览

java - 是否可以在我进入 finally 块之前检测是否发生异常?

在 Java 中,是否有一种优雅的方法可以在运行 finally 块之前检测是否发生异常?在处理“close()”语句时,通常需要在 finally 块中处理异常。理想情况下,我们希望维护两个异常并将它们向上传播(因为它们都可能包含有用的信息)。我能想到的唯一方法是在 try-catch-finally 范围之外有一个变量来保存对抛出异常的引用。然后将“已保存”异常与 finally 块中发生的任何异常一起传播。

有没有更优雅的方式来做到这一点?也许一个 API 调用会揭示这一点?

这是我正在谈论的一些粗略代码:

显然,还有许多其他类似的 kludges 可能涉及将异常保存为成员变量,从方法中返回它等等......但我正在寻找更优雅的东西。

也许类似Thread.getPendingException()或类似的东西?就此而言,其他语言是否有优雅的解决方案?

这个问题实际上是从另一个问题的评论中产生的,该问题提出了一个有趣的问题。

0 投票
4 回答
32365 浏览

java - 如何捕获 ClassCastException?

从 xml 反序列化对象时,我试图捕获 ClassCastException。

所以,

然而这不会因为异常没有被捕获。你有什么建议?

0 投票
3 回答
1161 浏览

logging - 企业图书馆审查?

就所提供功能的内存使用而言,用于异常处理和日志记录的企业库是否有效?

优缺点都有什么?谢谢

0 投票
5 回答
20749 浏览

c# - 从另一个线程捕获异常

我有一个在单独的线程中运行的方法。线程是从 Windows 应用程序中的窗体创建和启动的。如果从线程内部抛出异常,将其传递回主应用程序的最佳方法是什么。现在,我将对主窗体的引用传递到线程中,然后从线程中调用该方法,并导致该方法被主应用程序线程调用。是否有最佳实践方法来做到这一点,因为我对我现在的做法感到不舒服。

我的表格示例:

我的线程类的示例:

0 投票
2 回答
9877 浏览

spring - 如何配置spring HandlerExceptionResolver来处理jsp中抛出的NullPointerException?

从 jsp 抛出 NullPointerException 例如使用 <% null.toString(); %>

此异常不由 HandlerExceptionResolver 处理,而是抛出到 web 容器(tomcat)并转换为code 500 error.

如何配置 spring 以在我的 HandlerExceptionResolver 中获取该错误?

细节:

  • Spring 可以配置为处理控制器内部抛出的异常,但不能处理视图抛出的异常。
  • 当然,我可以解决 NullPointerException,但我想设计一个解决方案来优雅地解决 Web 应用程序上的任何可能问题,以便向用户显示用户友好的消息。
0 投票
13 回答
12411 浏览

c++ - 在 C++ 中,使用异常和 try/catch 而不是仅仅返回错误代码有什么好处?

我已经编写 C 和 C++ 很长时间了,到目前为止,我从未使用过异常和 try/catch。使用它而不是让函数返回错误代码有什么好处?

0 投票
1 回答
379 浏览

visual-studio - 异常调试:如何解决“抛出时中断”

我已经厌倦了清除 Debugging->Exceptions 选项Break when thrown以通过我正确处理的异常,然后设置Break when thrown选项以查找未正确处理的后续异常的来源。

我想要一种方法来排除某些 try 块Break when thrown,例如预处理器指令或其他东西。我尝试录制一个宏,但它所做的只是打开 Debugging->Exceptions 对话框。

即使在粗粒度的情况下,最好指定哪些方法可以免于Break when thrown调试。

这是白日梦吗?