В настоящее время я отлаживаю код с вложенными операторами 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
только один раз. - Я пробовал использовать
dbquit('all')
, но безрезультатно
Обратите внимание, что я предпочитаю не удалять операторы try-catch из кода.
dbstop if caught error; dbstop if error
заново... 05.06.2013dbclear if error; dbclear if caught error; dbquit;
, а второй сdbstop if caught error;dbstop if error;
Тогда это всего два клика. 05.06.2013dbquit
не работает в цикле while, что тоже для меня загадка. 05.06.2013