Я хочу попробовать запустить свой код, даже если я столкнулся с ошибкой. Я утверждать, где я полагаю, что я получаю ошибку ниже, и что ошибка:Программа Escape/continue, если ошибка (Ruby)
require 'rubygems'
require 'simple_oauth'
require 'cloudsight'
require 'rubygems'
require 'net/http'
require 'uri'
require 'json'
require 'open-uri'
require 'openssl'
require 'hpricot'
#ALCHEMY
file='C:\\Users\\ENTER USERNAME\\Desktop\\cloudsight.txt'
f = File.open(file, "r")
f.each_line {|line|
tstart = 'name"=>"'
tstop = '"'
term = line[/#{tstart}(.*?)#{tstop}/m, 1]
url = 'http://access.alchemyapi.com/calls'
service = '/text/TextGetRankedTaxonomy'
apikey = '?apikey=ENTER ALCHEMY API KEY'
thething = '&text='
termencoded = URI::encode(term)
fullurl = url + service + apikey + thething + termencoded
sleep 1
opener = open(fullurl, 'Accept-Encoding' => '') {|f| f.read }
#print opener
Я думаю, что я получаю ошибку в этой точке.
lstart = '<label>/'
lstop = '</label>'
label = opener[/#{lstart}(.*?)#{lstop}/m, 1]
sleep 1
cstart = '<score>'
cstop = '</score>'
confidence = opener[/#{cstart}(.*?)#{cstop}/m, 1]
#data = label + ',' + confidence + ',' + line
print label
print confidence
print "\n"
}
Это ошибка, я, кажется, получают:
C:/Ruby21/lib/ruby/2.1.0/uri/common.rb:304:in `escape': undefined method `gsub' for nil:NilClass (NoMethodError)
Любые идеи о том, как я могу передать ошибку/денешься/или сделать строку придумать вместо этого?
Будет ли это работать? label = opener [/ # {lstart} (. *?) # {lstop}/m, 1] rescue '', и эта уверенность = открыватель [/ # {cstart} (. *?) # {cstop}/m, 1 ] rescue '' – Zahid
Где вы используете gsub? Код, который вы отправили, не включает его. – grenierm5
, то я получаю следующее: C:/Users/USERNAME/Desktop/tes453: 45: синтаксическая ошибка, неожиданный tINTEGER, ожидающий ключевое слово_до или '{' или '(' C:/Users/USERNAME/Desktop/tes453: 51: синтаксическая ошибка, неожиданный tIDENTIFIER, ожидающий keyword_do или '{' или '(' Знаете ли вы, как я могу обойти это? – semiflex