问:如何在处理异常后恢复代码操作? 我现在使用try和catch。
Try
{
Process url and render the text and save contents to text file.
}Catch(Exception ex)
}
有些网址坏了,所以我如何跳过破坏的网址并继续使用其他网址?
答案 0 :(得分:8)
取决于您如何迭代您的网址。例如:
for (URL url: urllist) {
try {
// Process **one** url
} catch (Exception ex) {
// handle the exception
}
}
这将处理列表中的所有网址,即使某些处理会引发异常。
答案 1 :(得分:4)
就是这样 - 什么都不做(除了可能记录警告),代码执行将继续。例如:
for (String url : urls) {
try {
// parse, open, save, etc.
} catch (Exception ex) {
log.warn("Problem loading URL " + url, ex);
}
}
答案 2 :(得分:2)
试试这个:
for (url : allUrls) {
try {
Process url and render the text and save contents to text file.
} catch(Exception ex) {
...
continue;
}
}
答案 3 :(得分:0)
创建两个这样的方法:
public void processAllURLs(final List<String> urls){
for(String url: urls){
processURL(url);
}
}
public void processURL(final String url){
try {
// Attempt to process the URL
} catch (Exception ex) {
// Log or ignore
}
}
答案 4 :(得分:0)
此伪代码存在逻辑错误。
这样想。你的'进程网址'是一个循环是吗?当它发现异常时,它退出进程循环到catch块,然后到算法结束。
您需要在流程循环中嵌套整个try catch块。这样当它遇到异常时它返回到循环的乞讨而不是程序的结束。