matlab 里try用法,matlab在整个程序(全局)中使用try-catch来报告错误
我的matlab程序是一個多窗口程序化GUI。我已經(jīng)實現(xiàn)了一個報告系統(tǒng),所以當遇到錯誤時,它會調用我編寫的函數(shù)generateReport.m,它發(fā)送一個帶有一些日志和狀態(tài)信息的電子郵件,然后繼續(xù)執(zhí)行。
為了實現(xiàn)這一點,我在每個單獨的函數(shù)中都放了一個try-catch塊。這意味著甚至為我的main函數(shù)創(chuàng)建一個包裝器。有人知道避免這種情況的方法嗎?即能夠進行全球嘗試。我現(xiàn)在需要多個try-catch塊的原因是因為try-catch會捕獲塊中函數(shù)的錯誤,而不是那些的子函數(shù)
psuedo-code示例:
try:
segmentImage
catch:
generateReport
end
^ - 這樣,段映像中的錯誤會調用generateReport,但是段映像的子函數(shù)中的錯誤不會。最理想的是,我只需要在每個文件中使用一個try-catch(或其他一些我不知道的語句/結構)。
該問題詢問如何在回調中使用try-catch或一些函數(shù)包裝器來實現(xiàn)我現(xiàn)在的報告系統(tǒng)。之前我只想知道為什么我無法捕捉到子功能中的錯誤。我在每個子功能中都設置了try-catch來解決這個問題。
這個問題是不同的,因為我問的是,是否還有另一種方法可以做到這一點,而不是在每個功能和子功能中放置一個try-catch,這真的很不方便,看起來不那么好。也許需要一種我不知道要做的技術,還是需要一種更有效的方法來構建我的代碼來實現(xiàn)這一目標?
多次嘗試捕獲的示例:
首先是我運行的主要功能,它只包含CSTMainWindow
function CeleST
try
% Global try-catch on CeleST
CSTMainWindow()
catch exception
generateReport(exception)
end
在CSTMainWindow中:我必須在它的子功能上放置try-catch塊。在此示例中,給定CSTProcessVideos和CSTCheckResults是編程GUI文件
function processVideo(hObject,eventdata) %#ok
try
set(mainFigure,'Visible','off');
CSTProcessVideos
set(mainFigure,'Visible','on');
flagConsistentButton = false;
checkSequences
populateFilters
catch exception
generateReport(exception)
end
end
function checkResults(hObject,eventdata) %#ok
try
set(mainFigure,'Visible','off');
CSTCheckResults
set(mainFigure,'Visible','on');
flagConsistentButton = false;
checkSequences
populateFilters
catch exception
generateReport(exception)
end
end
我想知道我是否可以采取一些措施來避免對所有內容進行try-catch(我還將try-catch塊放在不包含其他文件中編寫的代碼的子函數(shù)中)
我希望我的問題很明確。在此先感謝您的幫助
總結
以上是生活随笔為你收集整理的matlab 里try用法,matlab在整个程序(全局)中使用try-catch来报告错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 大于并且小于,Matlab
- 下一篇: matlab处理svm的数据,SVM-G