我有一个函数f,该函数f是一个95%的for循环巨人(该函数的具体细节无关紧要)。该功能正常运行时,有时会停止运行(由于各种原因)。由于f的设计,当重新执行f时,它会从中断点重新启动并继续正常工作,直到完成或停止并必须重新启动。显然,第一种方法是“定位并修复错误”,这将在某个时候完成。但是,与此同时,该功能必须产生结果。我的问题是,有没有办法自动重新执行它?
例如(伪代码)
execute(f)
if(f fails){
execute(f)
} else {}
当f最终完成时,我们继续进行代码的另一部分。
所以我的问题是,这可行吗?非常感谢!
答案 0 :(得分:1)
只需使用it('should compile partial as per the context', () => {
const receivedOutput = someFunctionReturningHTMLString();
const newNode = document.createElement('div');
newNode.innerHTML(receivedOutput);
// Assuming your output is `<a href="/" class="some_class1 some_class2" >`
const link = newNode.querySelector('a');
// Test the attributes that matter to you as normal HTML
expect(link.getAttribute('class')).toBe('some_class1 some_class2')
expect(link.getAttribute('href')).toBe('/')
});
。它是标准的R函数,将表达式作为参数,如果表达式正确运行,则返回表达式返回的值;如果发生错误,则返回类try
的对象。例如:
try-error
如您所见,您可以将表达式括在a<-try(2+2)
a
#[1] 4
class(a)
#[1] "numeric"
a<-try(2+"")
class(a)
#[1] "try-error"
中,然后检查返回的对象是否继承自try
并决定在两种情况下的处理方式。就您而言,您可以:
try-error
以上,我尝试进行repeat {
tmp<-try(execute(f))
if (!(inherits(tmp,"try-error")))
break
}
。如果运行正确,则退出循环。如果没有,它将继续尝试。