我正在编写一个函数来测试组织模式缓冲区中的brokens链接:
(setq urls '("http://google.com" "http://bing.com" "http://www.yahoo.com" "http://thisdoesntexist.net"))
(while (setq nextlink (car urls))
(if (url-http-file-exists-p nextlink)
(message "Link works: %s" nextlink)
(message "Broken Link found: %s" nextlink))
(setq urls (cdr urls)))
除非遇到不存在的Web服务器,否则此方法有效。然后它会抛出一个lisp错误并打开一个 backtrace 缓冲区。
我想要的是首先测试服务器是否存在的方法,如果是,那么使用url-http-file-exists-p检查特定文档。
谢谢
(while (setq nextlink (car urls))
(condition-case nil
(if (url-http-file-exists-p nextlink)
(message "Link works: %s" nextlink)
(message "Broken Link found: %s" nextlink))
((error) (message "Server not found: %s" nextlink)))
(setq urls (cdr urls)))
答案 0 :(得分:6)
为什么不通过异常处理condition-case
块捕获错误?