use exception

とりあえずPRだけ

あとで方針決めて精査してやる。