【问题标题】:Static exception instance静态异常实例
【发布时间】:2009-04-19 13:02:40
【问题描述】:

静态异常实例可以安全使用吗?有什么好的理由可以避免以下情况?

public class ResourceHttpHandler : IHttpHandler
{
    private static HttpException notFoundException =
                new HttpException(
                    (int)HttpStatusCode.NotFound,
                    "Assembly Not Found");

    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        ....
        throw notFoundException;
        ....
    }
}

【问题讨论】:

    标签: c# multithreading exception


    【解决方案1】:

    异常的堆栈跟踪在抛出时设置 (http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx),因此此代码不是线程安全的。

    多个线程将使用同一个异常对象,任何依赖异常内容的人都会得到令人困惑的结果。

    【讨论】:

    • 谢谢,我确定有什么问题,我只是不知道是什么:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    相关资源
    最近更新 更多