c++11以降は、throwを用いた例外指定は推奨されない。