あ、ひょっとして「?;」ってエラーが発生したらそこでsub()を抜けるってこと?
まあ、だとしても、C++でもエラーチェックベースで実装しろということにはならないけどね