3e93158713
The `NullReferenceException` type is intended to only be thrown by the CLR. In most cases, it should be converted to an `ArgumentException` or an `InvalidOperationException`, depending on if the null value is a parameter to the current method or not. The `Exception` type should never really be thrown as it doesn't provide any additional information or hints as to the issue. It also forces users that would like to handle expected exceptions to catch all exceptions. These are converted to an exception type that more accurately describes the reason for raising the exception: `KeyNotFoundException`, `InvalidOperationException`