どうして固まっているのにエラーを知ることができたのだろう?
eval{}で囲んで例外キャッチするべきではないか。