有效地使用try()删除文件

时间:2015-02-07 08:06:23

标签: ruby-on-rails ruby-on-rails-4 dropbox-api

我正在为一个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()是否适合此应用程序?如果没有,可能会有一个很好的选择吗?

1 个答案:

答案 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块非常有用。与上面的代码一样,您的代码可能会抛出错误,但您需要处理错误,它不应该破坏功能,因此您可以使用它。希望我对此很清楚。