Есть такой код
int i = 300;
byte b = (byte)i;
Можно ли как-то его заставить генерировать исключение при обнаружении, что i не помещается в байт? Или только так?
int i = 300;
if (i < Byte.MIN_VALUE || i > Byte.MAX_VALUE)
throw new ArithmeticException();
byte b = (byte)i;
Ответ
Суть та же, но на мой взгляд покрасивее, хотя и менее понятно =)
Имя метода взял по подобию Math.toIntExact(long)
byte toByteExact(int i){
byte b = (byte)i;
if (i != b)
throw new ArithmeticException();
else
return b;
}
Комментариев нет:
Отправить комментарий