Forums: Open Discussion (Thread #1299)

質問:『EJReturnクラスの例外を生成しました』 (2002-10-24 10:27 by qihong #2411)

はじめまして。
自分のプログラムにマクロを導入しようと思い、DMonkeyを試し始めました。
単純にTMemo2つとボタンを配置したプロジェクトを作り、マニュアルにある『例(1)』を実行させてみたのですが…

procedure TForm1.Button1Click(Sender: TObject);
begin
if DMS1.Compile(Memo1.Lines.Text) then
DMS1.Run;
end;
procedure TForm1.DMS1Stdout(Sender: TObject; S: String);
begin
Memo2.Lines.Add('> ' + Trim(S));
end;

// 例(1)
class Foo{ //指定しない場合は Objectを継承
aaa = 10;
function f1(a){
Global.println(a + ',world'); //Globalが必要になります
}
}
class Bar extends Foo{
bbb = 20;
function f2(){
Global.println(this.aaa);
}
}
class Hoge extends Bar{
ccc = new Array(5,6,7,8,9,10);
function f3(){
Global.println(this.bbb);
}
}

a = new Hoge;
println(a.getProperties());
a.f1('hello');
a.f2();
a.f3();
for(i in a.ccc)
println(i + '=' + a.ccc[i]);


『プロジェクト…がEJReturnクラスの例外を生成しました。'return' プロセスは停止しています…』
と言うエラーが出ます。DMonkeyのソースを見ると、クラス内で定義されている関数 f1(),f2(),f3() の処理が正常に終了する毎にこの例外を発生させているような気がするのですが…。

これには何か理由があるのでしょうか?あるいは,私の使い方が間違っているのでしょうか。
どなたか判る方が居られましたら,アドバイスをお願いします。

Reply to #2411×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 質問:『EJReturnクラスの例外を生成しました』 (2002-10-24 12:33 by qihong #2412)

質問者本人です。
これ、実行時にはキャッチされて表示されないのですね。デバックでは毎回出ますが。
構造的なものなので『DMonkeyの仕様』ということでしょうか。

ただ拡張組み込みオブジェクトのデバッグ時には、関数終了時毎,continueやbreakを使う毎にデバッグプロセスが中断され、かなり煩わしく思うのですが…。
とりあえず、このまま試していくことにします。
Reply to #2411

Reply to #2412×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: 質問:『EJReturnクラスの例外を生成しました』 (2002-12-04 07:37 by fosterj #2911)

EJReturnは別にエラーではありません。
関数を抜けるときに必ず発生します。

デバッグオプションで無視する例外に指定すればIDEで止まらなくなります
Reply to #2411

Reply to #2911×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login