我正在循环几个例程,并且由于任何原因这些例程可能会抛出异常。我从每次迭代中收集异常并保存在字典中。完成所有迭代后,我想将收集的异常与迭代信息一起抛出。根据我过去的经验,我知道异常消息通常是工具,我想知道有一种优雅的方式来抛出这些异常并以一种很好的方式显示它们。
static void Main( string[ ] args ) {
Dictionary<int, Exception> exceptionDict = new Dictionary<int, Exception>( );
for( int i = 0; i < 5; i++ ) {
try {
if( i == 0 ) {
throw new Exception( "test0" );
}
else if( i == 1 ) {
throw new Exception( "test1" );
}
else {
throw new Exception( "test" );
}
}
catch( Exception ex ) {
exceptionDict.Add( i, ex );
}
}
if( exceptionDict.Count > 0 ) {
Exception ex = new AggregateException( exceptionDict.Values.ToList( )) ;
System.IO.File.WriteAllText( @"..\err.txt", ex.InnerException.StackTrace.ToString () );
throw ex;
}
}
答案 0 :(得分:3)
使用AggregateException。这是链接
http://msdn.microsoft.com/en-us/library/system.aggregateexception(v=vs.110).aspx
基本上抛出新的AggregateException(例外);
例外情况为IEnumerable<Exception>