block_catch

ブロック文の中で例外が発生したとき、その例外を握りつぶすことも可能となるような機構がなかったので追加することにしました。

bruke: class{
  block_first: method{ return this; }
  block_next: block_first;

  block_catch: method(e){ 
    // 引数としてスローされた例外オブジェクトが渡される

    return true; // 真値を返せば例外を握りつぶせる。
    // 偽値を返せば、スローされた例外が再スローされる。
  }
}

bruke(){
  throw "except!!";
}

block_catchを定義しない場合、例外は素通りします。