255 is allowed
reverting the order of operands this way is unnatural makes it easy to read it the wrong way. When there is only one condition or the condition expresses a between condition it is easier to read correctly,  min < v < max style. Howevery I prefer the variable op constant pattern always, because that aligns with how we pronounce the expression.

Hence this one is easier to grasp

if  (chan <=0 || chan > 255) throw...

And the valid range is [1..255], I think, according to the condition

if (!( 0 < chan && chan <= 255)) would be readable too, but perhaps top many parenthese for some people.