Still in the proximity of the bug-indicating exceptions category, we’ve landed at exception types you should be throwing yourself as well to indicate your API users are doing something silly or unexpected. ArgumentException is such an exception, signaling a parameter has an unsupported value.

For example, the File.OpenRead method will throw this exception when:

path is a zero-length string, contains only white space, or contains one or moreinvalid characters as defined by System.IO.Path.InvalidPathChars.

When accepting a path from some external source (such as the user), those requirements can be checked before calling the API. Alternatively, you could catch the exception to signal the mishap, but ...

Get C# 5.0 Unleashed now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.