make visibility selectable
switch の際値が想定外だった場合は例外をスローするように修正しました。