我正在学习更多关于ruby的知识,并且已经编写了一个脚本,可以在偶尔超时(进行多次API调用)时超时。
我知道我需要用下面这样的代码来rescue异常:
rescue Timeout::Error => e
# log #{e} for later, maybe
end
我的问题是我应该把rescue块放在哪里。由于我在多个循环中进行了多个API调用,我需要将该块放在每个API循环中吗?我更喜欢只写一次rescue块,例如在脚本的末尾,并让它在脚本中的每个循环中工作。我使用的是ruby 1.9.3。
我正在使用第三方DLL,它提供了一个异步方法来执行操作。
我在一个try-catch块中运行这个程序,但是在禁用了JustMyCode之后,我得到了一个来自第三方对象内部的错误,这个错误只能在AppDomain.CurrentDomain.UnhandledException中处理,它关闭了应用程序,并且远未被泛化为处理这个问题的地方。
守则:
try { ResultObject result = await thirdPartyObject.MethodAsync(); }
catch { /* never get here */ }
反射的thirdPartyObject.MethodA
所以,我已经安静地看了一段时间了。从Node.js 0.8.15开始,的Event: 'uncaughtException'说:
Don't use it, use domains instead. If you do use it, restart your application after every unhandled exception!
的域名是这样说的:
Stability: 1 - Experimental
(他们也拒绝为我工作-我的应用程序仍然崩溃)
我所要做的就是不让我的Node.js + Express应用崩溃。
有没有什么方法可以成功地将所有错误
让我们看看这个简单的尝试/捕捉例子..。
try
{
// User inputs path of a file
if(!ValidPath)
throw new InvalidPathException();
}
catch InvalidPathException e
{
// Log error
// Re-throw the error.
throw;
}
几个问题。两者都可能是简单的答案。
的投球是否返回并检查下一个接球,然后再检查下一个,以此类推?有办法回到原来的尝试吗?还是编程实践不好?