我是靠谱客的博主 务实彩虹,最近开发中收集的这篇文章主要介绍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 里try用法,matlab在整个程序(全局)中使用try-catch来报告错误所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部