コストの大半はthrow時の生成が原因
throwの部分をコメントアウトして測定すると一気に処理時間が短かくなることからわかるけど
int型をthrowする場合でもtryブロックの前後のトラップとは比べものにならんぐらいコストがかかる
だから例外があくまで例外であるという程度の頻度で発生するなら殆ど問題無い程度のコストになるんじゃないかな?
100万回回してきっちり100万回例外になるようなのなんてどうみてもロジックミスだし