Rework exceptions to be simpler like .NET library.