matlab无法捕获子函数中的错误

时间:2015-08-12 16:27:23

标签: matlab try-catch

我正在尝试在我的代码中实现一个错误报告系统,所以我对运行的函数进行了try / catch以启动程序。它是一个程序化的GUI,因此大多数子功能都是按钮或其他GUI元素的回调。但是,无论何时在这些子功能中抛出错误,都不会被捕获。某些子功能在其他文件中定义,因为它们是其他编程GUI文件。

我的问题是,无论如何要捕获超过一个功能级别的错误?

以下示例: 我运行CeleST来启动程序

sudo

CSTMainWindow是一个编程的GUI文件,这是一个按钮:

function CeleST
try
    % Global try-catch
    CSTMainWindow()
catch exception
    generateReport(exception) % bugReporter
end

但是没有捕获processVideo中的错误 processVideo:

uicontrol('parent',mainPanel,'style','pushbutton','string','1. Process videos...','position',[500 yFilters+hFilters+10 170 60],'callback',@processVideo);

即使在子函数中放置未定义的变量也会引发错误但是我的try / catch没有捕获它们。任何建议或我做错了什么?我是否真的必须在所有东西周围放置try-catch块?

1 个答案:

答案 0 :(得分:1)

GTSMainWindow没有调用processVideo。相反,该函数用作回调并稍后调用。 基本上每个回调函数都必须关心它自己的错误,将try catch放入processVideo函数中它会捕获错误。

相关问题