Why is this an issue?
Throwing such general exceptions as Exception
, SystemException
, ApplicationException
,
IndexOutOfRangeException
, NullReferenceException
, OutOfMemoryException
and
ExecutionEngineException
prevents calling methods from handling true, system-generated exceptions differently than application-generated
errors.
Noncompliant code example
Public Sub DoSomething(obj As Object)
If obj Is Nothing Then
' Noncompliant
Throw New NullReferenceException("obj")
End If
' ...
End Sub
Compliant solution
Public Sub DoSomething(obj As Object)
If obj Is Nothing Then
Throw New ArgumentNullException("obj")
End If
' ...
End Sub
Resources