我正在为一个rails应用程序编写脚本,该应用程序通过dropbox-api
gem管理Dropbox中的文件(在松散的意义上)。无论如何,我尝试在采取一系列操作之前删除文件(如果存在)。
要删除文件,我使用以下内容:
Dropbox::API::Client#destroy
Removes the file specified by path
Returns a Dropbox::API::File object of the deleted file
client.destroy 'file.txt' # => #<Dropbox::API::File>
客户
client = Dropbox::API::Client.new(:token => 'xxxxxxxxxxx', :secret => 'yyyyyyyyyyy')
简单地删除文件不是问题;如果文件不存在,我希望脚本不要抛出错误。我认为这可能是try()
的工作,但我还没有能够让它发挥作用。 try()
是否适合此应用程序?如果没有,可能会有一个很好的选择吗?
答案 0 :(得分:1)
您需要在开始和救援块中编写代码。像这样:
begin
#code here which may throw error
rescue
#code here to rescue if it throws error
puts "File not found"
end
这是一个例子。你可以这样做。希望这会有所帮助。
编辑:
当您需要在调用任何对象的属性时解救任何异常时,将使用try
方法。可能我不清楚这句话,我会用一个例子来解释。假设有users
您不确定其属性。所以你能做的是:
@user.try(:name)
因此,如果名称存在,那么它将返回值,否则如果它不存在则不会抛出错误而是返回nil
。
当您想要处理任何异常时,begin
rescue
块非常有用。与上面的代码一样,您的代码可能会抛出错误,但您需要处理错误,它不应该破坏功能,因此您可以使用它。希望我对此很清楚。