这两天在写爬虫,需要iconv来转换字符编码,昨天在解决一个不存在的问题。。
嗯,我的意思是这个问题是别人的问题,不是我的问题。
Iconv.iconv("UTF-8//IGNORE","GB18030//IGNORE",str)居然还会出错导致程序中断。但是我一直没有注意到出错的时候没有输出任何ruby异常,而是只显示一个类似这样的字符串"\277"。搜索了一整天没有结果,后来仔细一想,感觉输出不太对劲,会不会是iconv底层c那部分的问题?于是换到ubuntu下用ree1.8.7来试,结果就没问题了……
========================================================
另外还有一个奇怪的问题……
begin
@topic_page = @topic_page.link_with(:text => "#{@page}").click
rescue Net::HTTPInternalServerError
retry
end
这里居然还会抛Net::HTTPInternalServerError,真是不合逻辑啊不合逻辑……
=======================================================
郁闷了,搞了半天,Net::HTTPInternalServerError居然不是一个Error,不是StandardError的子类。
自己启动了个服务器,在articles controller的index方法里写个raise '',再用以下代码访问:
require 'mechanize'
agent=WWW::Mechanize.new
begin
page = agent.get 'http://localhost:3000/admin/articles'
rescue =>err
puts "#{err.class}##{err}"
end
输出:WWW::Mechanize::ResponseCodeError#500 => Net::HTTPInternalServerError
原来如此啊....rake任务打印出的异常信息全都不带类名么?这样前面第1个错误的解决也是歪打正着了……
改个加强型的,哇哈哈哈哈:
def self.access(target)
begin
if target.respond_to? 'click'
url = target.href
target.click
else
url = target
@@agent.get(target)
end
rescue WWW::Mechanize::ResponseCodeError => err
#FIXME: puts到时候改为log
puts "#{err}, caused by accessing: #{url}"
sleep 10
retry
end
end
分享到:
相关推荐
标题与描述中的关键词“ruby1.8.6”指向了Ruby编程语言的一个特定版本,即Ruby 1.8.6。这一版本在2007年发布,是Ruby语言发展历史上的一个重要里程碑,它在性能、稳定性和安全性方面相较于之前的版本有了显著提升,...
本文将深入探讨Ruby 1.8.6在Windows平台上的安装过程、主要特点、使用场景以及与现代版本的差异。 首先,让我们来看看Ruby 1.8.6在Windows上的安装。文件名"ruby186-26 (1).exe"表明这是一个针对Ruby 1.8.6的...
Ruby1.8.6 One-Click Installer
这是一个适用于初学者和有一定经验的开发者的技术指南,旨在帮助您创建一个稳定的开发环境,以便开始使用Ruby on Rails(RoR)框架进行Web应用开发。 首先,我们来了解Ruby 1.8.6。Ruby是一种面向对象的、动态类型...
总的来说,了解 Ruby 1.8.6 的这些知识点有助于我们理解 Ruby 语言的历史和发展,同时也有助于维护和迁移旧的 Ruby 项目。虽然它已经过时,但其核心理念和设计原则仍然影响着现代的 Ruby 编程实践。
Ruby-doc is a project dedicated to creating and collecting documentation on Ruby. You can find collections of articles and other resources at the website. stdlib-doc is a RubyForge project that ...
Ruby 1.8.6是该语言的一个早期稳定版本,尽管后来有了更新的版本如2.x和3.x系列,但1.8.x在许多老项目中仍被广泛使用。 REE的主要特性包括: 1. **Performance Enhancements(性能提升)**:通过引入了一个名为...
本文档旨在指导用户如何在 Windows 操作系统上安装 Ruby 1.8.6 版本以及 Rails 2.1.0 版本,并确保其正确运行。这些版本虽然已经比较老旧,但在某些特定场景下仍然有使用需求。 #### 准备工作 在进行安装前,请...
ruby 1.8.6官方chm文档,做为ruby开发者,这是必备文档.
Ruby1.8.6 One-Click Installer
Ruby1.8.6 One-Click Installer带SciTE
Ruby 1.8.6是Ruby的一个较旧版本,发布于2011年,尽管它已经被更现代的版本如Ruby 2.x和3.x取代,但在某些特定场景或项目中,仍然有其应用价值。 在描述中提到的"ruby-1.8.6.tar.gz"是一个压缩包,它包含了完整的...
好用的API chm格式 想要的就下载吧!!!!
标题中的"ruby-1.8.6-p114.tar.gz"表明这是一个关于Ruby编程语言的老版本源码包。Ruby是一种面向对象的、动态类型的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在1990年代末期设计并开发。1.8.6是其版本号,...
访问Ruby官方网站或镜像站点,下载与操作系统相对应的Ruby安装包,确保下载的版本至少为1.8.6。安装过程通常是一个向导流程,用户只需按照提示完成各个步骤即可。安装完成后,可以通过在命令行输入`ruby -v`来检查...
VC6是一款经典的C/C++集成开发环境,尽管较旧,但在某些场景下仍被开发者用来构建Windows平台上的应用程序,包括开源项目。 Ruby的内核是其核心组件,负责执行解释和管理内存等低级任务。在源代码中,你可以找到...
ruby-1.8.6.tar.bz2
在Windows操作系统上配置Ruby运行环境是一项重要的步骤,尤其对于开发者来说,这将使得你能够运行Ruby程序和使用相关的开发工具。Ruby是一种动态、面向对象的脚本语言,它以其简洁的语法和强大的元编程能力而受到...
ruby api ruby文档 英文 ruby开发必备
这个压缩包“ruby186-26.rar”包含了 Ruby 1.8.6 的安装程序,特别是文件“ruby186-26.exe”,这很可能是Windows平台上的安装执行文件。 Ruby 语言是Yukihiro "Matz" Matsumoto 在1995年设计并开发的一种面向对象的...