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

Effectively using try() to delete a file

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

您需要在开始和救援块中编写代码。像这样:

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)

因此,如果名称存在,那么它会 return 值,否则如果它不存在,它不会抛出错误,而是 return nil.

当你想处理任何异常时,begin rescue 块很有用。像上面一样,你的代码可能会抛出一个错误,但你需要处理这个错误,它不应该破坏功能,所以你使用它。希望我清楚这一点。