Regarding a suggestion about splitting the Exception hierarchy

Keith Hill made this suggestion via the BCL Web Page:
"Consider the new exception System.RuntimeException derives from System.SystemException. I would put the following exceptions under System.RuntimeException: IndexOutOfRangeException, NullReferenceException, StackOverflowException, OutOfMemoryException, ExecutionEngineException, etc. The basic idea is clearly distinguish between exceptions the CLR throws and exceptions the BCL/FCL or any other 3rd party class library can throw."
Thanks for the suggestion Keith, I've noted it for us to consider in the future. Getting the split just right of course, would be difficult, and enforcing this in any shape or form would also be an interesting problem. Then theirs the underlying question of how someone is expected to use that split, once it's exposed. But I still think we can explore the options here, thanks!