1

コマンド ウィンドウに数行入力することと、スクリプトにそれらを実行させることの違いは何だろうか。

ネストされたtry - catchステートメントからのエスケープの質問には、関数の例があります。選択したコードをスクリプトに入れて呼び出しましたが、正しく動作しません。一方、 行を選択して f9を押すと、期待どおりに動作します。

行は次のとおりです。

dbclear all
dbquit
dbstop if caught error

サンプル関数を次のように呼び出します。

dbstop if caught error
mytestmain

関数の例は次のとおりです。

function mytestmain 
try
    mytestsub
catch
end

% Definition of subfunction, may or may not be in the same .m file
function mytestsub
try
    a=b; %Intentionally generate an error as b is not defined
catch
end
4

2 に答える 2

0

「機能しない」という意味によっては、デバッガーが特別なコンテキストであり、特定のデバッガー コマンド ( dbupdbdown、およびdbquit- ) がデバッガーの「K>>」プロンプトでのみ機能することが原因である可能性があります。スクリプトを呼び出すと、デバッガー プロンプトではなく、通常のコード実行 (ネストされた M コード コール スタック内) になり、そこでは機能しません。F9 キーを押すと、行が個別に実行されるため、それぞれがプロンプトから実行されます。

回避策として、このような一連のデバッガー コマンドを実際に実行したい場合は、小さな Java Swing ウィジェットを記述して、テキストを入力するのと同じようにコマンド ウィンドウにテキストを入力することができます。

于 2013-06-08T04:34:15.523 に答える