例外で遅いのはtryブロックへの進入と退出(例外ハンドラの登録と削除)なので、
演算関数が例外を投げる事はパフォーマンスに影響を与えないだろうよ。
除算関数のdenominatorに0が与えられるなんてのはlogic_errorの領分であって
そんな事が頻繁に起こりうる(0が定常的に与えつづけられる)なら直前に条件分岐で弾くべきでないの?