コードを整理して例外処理もいれて全体を修正