On Sat, Feb 27, 2010 at 05:02:18AM +0100, Sebastian Pipping wrote: > On 02/27/10 04:20, Zac Medico wrote: > > Do you have an example case where you want to use this? > > Multiple defects in metadata.xml are such a case. > At some point all the exceptions will have to collected, e.g. two > invalid herds are mentioned. In that case a single exception with a > list of invalid herds may suffice but it gets worse when combining > errors of slightly different types. I'd suggest looking at pchecks design instead of trying to do composite exceptions- essentially pass in a reporter that is invoked w/ the failure/'exception' instead passed in. Doing what you're suggesting (catching all exceptions at the top and trying sum them essentially) results in screwy code flow in the specific check- consider a check that can flag multiple issues. Chucking an exception means you get the first warning spotted (and just that). Do the reporter/observer/tweaked visitor approach, you get all of the issues, and it's left to the reporter to decide what to output (and how to format it). Also makes it a helluva lot easier to serialize the results into pickles, or go parallel (multiple processes running, the reporter in the subprocess just serializes the issue to a central process that then amalgamates the results). ~harring