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块放在不包含其他文件中编写的代码的子函数中)

我希望我的问题很明确。在此先感谢您的帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值