Şu anda iç içe tutulmuş try-catch deyimleriyle kod hata ayıklama yapıyorum.Yuvalanmış try-catch deyiminden kaçış
Hataları dbstop
komutuyla kolayca halledebilirim, ancak her kodlamada ve programın çalışmasını durdurmak istediğimde, her bir yuvalama seviyesi için bir kez dbquit
girmem gerekiyor.
Bu oldukça sinir bozucu olduğundan, hata ayıklama işlemini tamamladığımda tüm programların hata ayıklamasını gerçekten durduracak bir çözüm arıyorum. İşte
ben kod çağırmak nasıl bir örnektir:dbstop if error
dbstop if caught error
mytestmain
Ve burada fonksiyonu (subfunction veya farklı bir .m dosyasında olabilir veya olmayabilir)
nasıl görüneceği ile bir örnektirfunction mytestmain
try
mytestsub
catch
end
%% Definition of subfunction
function mytestsub
try
a=b;%generate an error as b is not defined
catch
end
ne denediniz mi?
- Ancak bu sadece bir kere
dbquit
çalıştırır, bir komut dosyası veya iki kezdbquit
çağıran bir fonksiyonu kullanılarak çalıştı. - Ben
dbquit('all')
kullanarak çalıştı, ancak hiçbir etkisi ben kodunda try-catch ifadeleri kaldırmak için tercih
Not ile.
Bu davranış şaşırtıcıdır; 'dbquit', try/catches 'inizin ne kadar derinlemesine barındırıldığına bakılmaksızın, hata ayıklayıcısından ve kod yürütme işleminden tamamen kurtulmalı. Sık sık derinlemesine iç içe deneyler/yakalamalar ile yaparım. Matlab'ın hangi sürümünü kullanıyorsunuz? –