public static void AddException(string ex, bool log) { exceptionCount++; if (IsFirstError) { AddLog(@"信息20", "原文件名:" + currentFile, true); } AddLog(@"错误01", " 第" + ExceptionCount.ToString() + "个格式错误:" + ex, log); }
/// <summary> /// Records an exception and returns true if the threshold is exceeded for that exception /// </summary> public bool Record(string testName, Exception ex) { // Converting from exception to string can be expensive so only do it once and cache the string string exceptionString = ex.ToString(); TraceException(testName, exceptionString); // Get the exceptions for the current test case ConcurrentDictionary <string, ExceptionCount> exceptionsForTest = _exceptions.GetOrAdd(testName, _ => new ConcurrentDictionary <string, ExceptionCount>()); // Get the count for the current exception ExceptionCount exCount = exceptionsForTest.GetOrAdd(exceptionString, _ => new ExceptionCount()); // Increment the count Interlocked.Increment(ref exCount.Count); // If the count is over the threshold, return true return(TestMetrics.ExceptionThreshold.HasValue && (exCount.Count > TestMetrics.ExceptionThreshold)); }