What's the motivating reason to do this?  Is it just to get the factory() function?  I worry that there's a semantic difference between the two exceptions that will get blurred in this case.  I can't think of a case where it's a problem, though.