ハリウッドの原則な設計(基底クラスが派生クラスの関数を呼ぶ) + 例外ってどうしてます?
class Parent {
  protected virtual void doInner() = 0;
  public void do() { ...色々... doInner(); ...色々... }
}
class Child : public Parent {
  private void doInner() { ...例外を投げるかもしれない処理... }
}


Parent::Doは当然の事ながらChild::doInnerの投げる例外は知らないわけで
 ・Parent::doでは、全例外を無差別に掴んで後処理する。
    →メモリ不足等まで握りつぶして危険
 ・Parent::doで後処理したら、必ずそのまま再スロー
    →Parent::doを呼ぶクラスが困る。
     Parent::doから外に投げられる例外が分からないから。
 ・Child::doInnerから例外を投げないように注意して作ってもらう or 投げてよい例外を規定する
    →派生クラス側で間違えたらNG。

と、どこかで破綻する気が。