Today I was working in C# and tried to catch a `FileNotFoundException`. But I wasn't able to do so until I added `using System.IO`. 

Why was `FileNotFoundException` included in the `System.IO` namespace and not in the `System` namespace? 

I understand that `FileNotFoundException` will be caused by an IO only, hence maybe the reason. But on the other hand, shouldn't all `Exception`s be in the `System` namespace?