焼き鳥クラス作るとするやん
class 焼き鳥 {
 焼き鳥(鳥) {};
}
ちょっと便利にするために、簡単にインスタンスが作れるstaticメソッド作るやん
class 焼き鳥 {
 焼き鳥(鳥) {};
 static 焼き鳥(const スーパーで買ってきた焼き鳥);
}
だけど、処理中に無理な状況が出てきて例外を投げるやん
static 焼き鳥( const スーパーで買ってきた焼き鳥 ) {
 if ( 腐ってた( スーパーで買ってきた焼き鳥)  ) {
  throw exception;
 }
}

そうすると、呼び出す側は、tryせなあかんやん
 焼き鳥 a焼き鳥; <-----(a)
 try {
  a焼き鳥 = 焼き鳥(スーパーで買ってきた焼き鳥);
 }catch(...){
 }

(a)でデフォルトコンストラクタが走ってしまうやん
めっちゃ無駄やと思わん?