2009-04-19 3 views
0

Являются ли статические экземпляры исключений безопасными для использования? Любая хорошая причина, чтобы избежать следующего?Статический экземпляр исключения

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; 
     .... 
    } 
} 

ответ

8

StackTrace Исключением имеет значение, когда оно брошено (http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx), так что этот код не поточно.

Несколько потоков будут использовать один и тот же объект исключения, и каждый, кто полагается на содержимое исключения, получит запутанные результаты.

+0

Спасибо, я был уверен, что что-то не так, я просто не мог узнать, что :) – Diadistis

Смежные вопросы