例外

この日はすごいバグってた例外周りを修正しました。
バージョン0.9で反映されます。

Xtalの例外はJavaScriptとほぼ同じような仕様となってます。

例: test.xtal ファイルに記述して実行するとする

foo : fun(){
  // 例外の送出
  throw Exception("Error!");
}

try{

  try{
    try{
      foo();
    }catch(e){
      throw e; // 再スロー
    }finally{
      println("finally1");
    }
  }finally{
    println("finally2");
  }

}catch(e){
  println(e);
}

これの出力は次のようになります。

finally1
finally2
Error!
  test.xtal:3: in foo
  test.xtal:10: in <TopLevel>
  test.xtal:12: in <TopLevel>