静态异常实例

Dia*_*tis 0 c# multithreading exception

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

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;
        ....
    }
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*ker 8

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

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