現在、ネストされたtry-catchステートメントを使用してコードをデバッグしています。ネストされたtry-catchステートメントからの脱出
dbstop
コマンドでエラーを簡単に処理できますが、コードを調べてプログラムの実行を停止するたびに、入れ子にするレベルごとにdbquit
を入力する必要があります。
これは非常に迷惑なので、デバッグが完了したら、すべてのプログラムのデバッグを実際に停止するソリューションを探しています。ここで
は、私がコードを呼び出す方法の例です:dbstop if error
dbstop if caught error
mytestmain
そして、ここで関数は(サブ関数または別の.mファイルであってもなくてもよい)
ように見えることができるものの一例ですfunction mytestmain
try
mytestsub
catch
end
%% Definition of subfunction
function mytestsub
try
a=b;%generate an error as b is not defined
catch
end
私は何を試してみましたか?
- 私は、しかし、これは一度だけ
dbquit
を実行しますが、スクリプトや二度dbquit
を呼び出す関数を使用してみました。 - 私は、私はコード内のtry-catch文を削除したくない効果なし
注意して、dbquit('all')
を使用してみました。
この動作は驚くべきことです。 'dbquit'は、try/catchがどれくらい深くネストされているかにかかわらず、デバッガとコードの実行を完全に終了します。深くネストされたtry/catchで頻繁にやります。 Matlabのどのバージョンを実行していますか? –