静态异常实例可以安全使用吗?有什么充分的理由要避免以下情况?
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;
....
}
}
最佳答案
抛出异常时会设置异常的stacktrace(http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx),因此此代码不是线程安全的。
多个线程将使用同一个异常对象,任何依赖于异常内容的人都会得到令人困惑的结果。
关于c# - 静态异常实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765383/