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