有效地使用 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
块很有用。像上面一样,你的代码可能会抛出一个错误,但你需要处理这个错误,它不应该破坏功能,所以你使用它。希望我清楚这一点。
我正在为 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
块很有用。像上面一样,你的代码可能会抛出一个错误,但你需要处理这个错误,它不应该破坏功能,所以你使用它。希望我清楚这一点。