在 Ruby 中,我们可以使用 begin
、rescue
和 ensure
关键字来处理异常情况。
当我们需要执行可能会产生异常的代码时,我们可以将这些代码放在 begin
和 end
之间,并在代码块末尾添加 rescue
子句来捕获异常。例如:
begin
# 可能会抛出异常的代码
rescue
# 处理异常的代码
end
在上面的代码中,如果 begin
块中的代码抛出异常,Ruby 就会跳转到 rescue
块中的代码来处理异常。
我们还可以使用 rescue
子句来捕获特定类型的异常。例如,如果我们只想捕获 StandardError
类型的异常,可以这样写:
begin
# 可能会抛出异常的代码
rescue StandardError => e
# 处理异常的代码
end
在上面的代码中,如果 begin
块中的代码抛出 StandardError
类型的异常,Ruby 就会跳转到 rescue
块中的代码来处理异常,并将异常信息保存到变量 e
中。
除了 rescue
子句,我们还可以使用 ensure
子句来定义无论是否抛出异常都需要执行的代码块。例如:
begin
# 可能会抛出异常的代码
rescue StandardError => e
# 处理异常的代码
ensure
# 无论是否抛出异常都需要执行的代码
end
在上面的代码中,ensure
块中的代码会在 begin
块中的代码执行完毕后执行,无论是否抛出异常。
总之,在 Ruby 中,我们可以使用 begin
、rescue
和 ensure
关键字来处理异常情况,并根据需要选择捕获特定类型的异常或定义无论是否抛出异常都需要执行的代码块。