ほんとに書き捨てのコードならそれでも構わないが、
一般的に例外の throw と catch でもって値のやりとりをするのはよろしくない

実装にもよるが、大抵の場合かなり遅い

以前、例外で値を返すフィボナッチを作って g++ でコンパイルして走らせてみたが、
笑えるくらい遅かった