Я пытаюсь реализовать свои собственные исключения в ядре dot net.
Это то, что у меня есть:
public class WSException: Exception
{
// some custom stuff...
private readonly string _developerMessage = "";
public string DeveloperMessage { get { return _developerMessage; } }
public WSException() {}
public WSException(string message) : base(message) {
this._developerMessage = message;
}
public WSException(string message, Exception inner) : base(message, inner) {
this._developerMessage = message;
}
public WSException(Exception ex) : base(ex.Message, ex.InnerException) {
_developerMessage = ex.Message;
Source = ex.Source;
//StackTrace = ex.StackTrace; // cannot be assigned to, it's read only
}
public WSException(string message) : base(message) {
this._developerMessage = (String.IsNullOrWhiteSpace(developerMessage) ? message : developerMessage);
}
}
Когда я ловлю общее исключение, я пытаюсьсоздать свой собственный (WSException), чтобы обрабатывать его обычным способом, например:
try {
// whatever
}
catch (WSException e) {
HandleException(e);
}
catch (Exception e) {
HandleException(new WSException(e));
}
Когда я делаю это таким образом, e.Source и e.StackTrace равны нулю, и когда япопытаться назначить StackTrace Я получаю Propery or indexer 'Exception.StackTrace' cannot be assigned to --it is read only
.
Как я должен реализовать этот конструктор?
public WSException(Exception ex) : base(ex.Message, ex.InnerException) {
_developerMessage = ex.Message;
Source = ex.Source;
//StackTrace = ex.StackTrace; // cannot be assigned to, it's read only
}