Should throwing exception be the first thing to do?
c#, exception, validation
Solution
There are no real guidelines or rules, but the first one is often preferred, because you can remove the `else`, removing one level of indention.
private void DisposeWorkFlowItem(WorkFlowItem item)
{
if (item == null)
{
throw new ArgumentException("work flow item must have value");
}
//TO DO: add a call to delete the task from worker service.
_workFlowItems.Remove(item);
_workFlowItemsStore.Delete(item);
}
Less indention makes for code that is easier to understand, especially in scenarios with multiple such checks.
Oh, and when checking a parameter for `null` you usually throw an `ArgumentNullException` with the parameter name as the first parameter:
throw new ArgumentNullException("item");
Problem
What is the right way (if any...) to validate user input This one (first throw the exception): ``` private void DisposeWorkFlowItem(WorkFlowItem item) { if (item == null) { throw new ArgumentException("work flow item must have value"); } //TO DO: add a call to delete the task from worker service. _workFlowItems.Remove(item); _workFlowItemsStore.Delete(item); } ``` Or this one (first do the action): ``` private void DisposeWorkFlowItem(WorkFlowItem item) { if (item != null) { //TO DO: add a call to delete the task from worker service. _workFlowItems.Remove(item); _workFlowItemsStore.Delete(item); } else { throw new ArgumentException("work flow item must have value"); } } ``` Is there any guidelines?