リファクタリングして重複した処理をサブルーチンに抽出。
dieの使用箇所をcroakに変更。コード整形。