2015-06-09 4 views
1

Я определил это специальное исключениеПользовательские Исключение: настроить сообщение перед вызывать базовый конструктор

public class ThirdPartyServiceException : System.Exception 
{ 
    public ThirdPartyServiceException(string message, Exception innerException): base(message, innerException) 
    { } 
} 

Это хорошо, но теперь я хочу настроить сообщение исключения, прежде чем вызвать базовый конструктор. Что-то вроде:

public class ThirdPartyServiceException : System.Exception 
{ 
    public ThirdPartyServiceException(string code, string message, string description, Exception innerException) 
    { 
     base(string.format("Error: {0} - {1} | {2}", code, message, description), innerException) 
    } 
} 

Но я не могу назвать базовый конструктор таким образом. Итак, как я могу это сделать?

+0

возможно дубликат [Вызов базовый конструктор в C#] (http://stackoverflow.com/questions/12051/calling-the-base-constructor-in-c-sharp) – ASh

ответ

1
public class ThirdPartyServiceException : System.Exception 
{ 
    public ThirdPartyServiceException(string code, string message, string description, Exception innerException) 
    :base(string.format("Error: {0} - {1} | {2}", code, message, description), innerException) 
    {   
    } 
} 
1

Переопределить Message.

+0

@MathieuF - Я не согласен , Я думаю, что это лучший способ настроить сообщение об исключении: настаивать на том, что это делается путем перехода к базовому конструктору, является классическим примером проблемы XY. – Joe