我想自己做个例外,比如AggregateException:var exceptions = ErrorCollectionExtension.GetErrorsAsExceptions(compiler.Errors);throw new AggregateException("Error", exceptions);可以作为参数List:Exceptionspublic MyException(string message, IEnumerable<Exception> innerExceptions) : base(message, innerExceptions) { }innerExceptions但是我在 base上遇到错误。如何通过收集它来制作自己的例外AggregateException?
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
一种方法是Exception通过一组内部异常来简单地扩展类,有点像这样:
public class MyException : Exception
{
private readonly ReadOnlyCollection<Exception> _innerExceptions;
public MyException(string message, IEnumerable<Exception> innerExceptions)
: base(message, innerExceptions.FirstOrDefault())
{
_innerExceptions = innerExceptions.ToList().AsReadOnly();
}
public ReadOnlyCollection<Exception> InnerExceptions => _innerExceptions;
}
或者你可以继承AggregateException并使用它的结构:
public class MyException : AggregateException
{
public MyException(string message, IEnumerable<Exception> innerExceptions)
: base(message, innerExceptions)
{
}
}
- 1 回答
- 0 关注
- 57 浏览
添加回答
举报
0/150
提交
取消