Я выполняю некоторую проверку параметров в методе и при необходимости выбрасываю исключение. Нужно ли мне вручную создавать исключения этого типа? Пока вызывающий объект заключен в блок try..catch, аналогичное исключение генерируется независимо от того, выполняются ли ручные проверки.
public static Int16 ToInt16(this byte[] value, int startIndex, bool isBigEndian) {
// are these exceptions necessary?
if (value == null) {
throw new ArgumentNullException("value");
}
if ((startIndex + 1) >= value.Length) {
throw new ArgumentOutOfRangeException("startIndex");
}
return (isBigEndian)
? (Int16)((value[startIndex] << 8) | value[startIndex + 1])
: (Int16)((value[startIndex + 1] << 8) | value[startIndex]);
}
Это метод расширения, используемый для преобразования 2 байтов в массиве в Int16 со способом переключения преобразования Big Endian или Little Endian.