在 WCF 中捕获未处理的异常

发布于 2024-08-30 07:30:39 字数 59 浏览 1 评论 0原文

在WCF中,是否有一个事件或方法可以捕获未处理的异常,或者我是否需要在任何方法中放置try/catch?

In WCF, is there an event or method that catches unhandled exceptions, or do I need to put a try/catch in any method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

み零 2024-09-06 07:30:39

是的,创建一个实现 IErrorHandler< 的类/code>界面:

允许实现者控制返回给调用者的错误消息,并可选择执行自定义错误处理,例如日志记录。

Yes, create a class that implements the IErrorHandler interface:

Allows an implementer to control the fault message returned to the caller and optionally perform custom error processing such as logging.

所谓喜欢 2024-09-06 07:30:39

您应该执行内部和外部 TRY/Catch 块。

因此,第一个方法以 Try

Then 开头,如果在另一个方法中抛出任何内容,则它默认为公开方法中的方法中的通用 catch,以将值返回给客户端。

我总是在我的 catch 块中使用日志记录来告诉管理员出了什么问题,但我总是让外部 catch 返回类似“请排除我们的 Appogies WCF.Blah 服务已失败。请查看服务器日志以获取完整详细信息”的值。

这样您就可以进行错误处理、日志记录并向您的客户发送良好的消息。

public class Service1 : IService1
    {
    public string GetData(int value)
    {
        try
        { 
            return somemethod(value);
        }
        catch(Exception ex)
        {
            LoggingHelper.Log(ex);
            return "Please Except our Appogies the WCF.Blah service has failed. Please review the server logs for complete details";
        }
    }

You should do Inner and outer TRY/Catch Blocks.

So the first method starts with Try

Then if anything is thrown within another method it defaults to your generic catch in the method that is in the exposed method to return a value to the client.

I always use logging in my catch blocks to tell an admin what went wrong but I aways have the outer catch return a value of something like "Please Except our Appogies the WCF.Blah service has failed. Please review the server logs for complete details"

This way you have error handling, logging and nice messages to your clients..

public class Service1 : IService1
    {
    public string GetData(int value)
    {
        try
        { 
            return somemethod(value);
        }
        catch(Exception ex)
        {
            LoggingHelper.Log(ex);
            return "Please Except our Appogies the WCF.Blah service has failed. Please review the server logs for complete details";
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文