如何避免罗马例外

时间:2012-02-11 07:39:55

标签: java exception-handling rss rome

我正在使用struts1做项目。 我正在使用ROME获取RSS源,但它在两个条件下失败:

  1. 当我的防火墙禁止rss url(响应代码403)
  2. 当我插入错误的rss url
  3. 为了避免这种情况,我该怎么办?

3 个答案:

答案 0 :(得分:0)

抓住异常并处理它们。

答案 1 :(得分:0)

有些情况你根本无法避免。

您无法避免网络中断,您无法避免错误输入的网址。

但是,您可以检查网络是否可以访问,以及URL是否输入正确。

您应该捕获异常并向用户提供有意义的错误消息。

答案 2 :(得分:0)

关于403
有些Feed似乎有一些保护(对于DDOS) 因此,基于用户代理(在您的情况下" Java"),他们拒绝您阅读Feed 因此,在打开像这样的连接之前,你必须设置自己的用户代理(比如firefox用户代理)

 System.setProperty("http.agent", USER_AGENT);
 URLConnection openConnection = url.openConnection();
 is = url.openConnection().getInputStream();
 if ("gzip".equals(openConnection.getContentEncoding())) {
     is = new GZIPInputStream(is);
 }
 InputSource source = new InputSource(is);
 input = new SyndFeedInput();
 syndicationFeed = input.build(source);
 XmlReader reader = new XmlReader(url);
 syndicationFeed = input.build(reader);

我当前的USER_AGENT字符串是
" Mozilla / 5.0(Windows NT 10.0; WOW64; rv:41.0)Gecko / 20100101 Firefox / 41.0&#34 ;;