I'm really looking for guidance on how to document a few exceptions in a public method inside C # -DLL.
Example:
/// <summary> /// This method does something /// </summary> /// <param name="p_Parameter1">First parameter</param> /// <param name="p_Parameter2">Second parameter</param> /// <param name="p_Number">A number</param> /// <exception cref="ArgumentNullException"> /// Thrown if p_Parameter1 is null</exception> /// <exception cref="ArgumentNullException"> /// Thrown if p_Parameter2 is null</exception> /// <exception cref="ArgumentNullException"> /// Thrown if any element of p_Parameter2 is null</exception> /// <exception cref="ArgumentOutOfRangeException"> /// Thrown if p_Number is below or equal 0</exception> /// <returns>A object</returns>
public static object DoSomething( object p_Parameter1, IList<object> p_Parameter2, object p_Parameter3, int p_Number) { if(p_Parameter1 == null) throw new ArgumentNullException( paramName:"p_Parameter1", message:"Parameter is needed"); if (p_Parameter2 == null) throw new ArgumentNullException( paramName: "p_Parameter2", message: "Parameter is needed"); for (int i = 0; i < p_Parameter2.Count; i++) { if(p_Parameter2[i] == null) throw new ArgumentNullException( paramName: String.Format("p_Parameter2[{0}]", i), message: "All elements have to be initialized"); } if(p_Number < 0) throw new ArgumentOutOfRangeException( paramName: "p_Number", message: "Parameter should be bigger then zero"); var returnValue = new object();
Is it right to document these exceptions? Should I add one exception tag for each case or add only one for all parameters for which null values ββare not valid?
/// <exception cref="ArgumentNullException"> /// Thrown if p_Parameter1, p_Parameter2 /// or any element of p_Parameter2 are null</exception>
source share