Ruby异常处理主要包括begin
、rescue
、ensure
和raise
四个关键字。以下是这些关键字在Ruby异常处理中的作用:
begin
:用于定义可能引发异常的代码块。rescue
:用于捕获并处理特定异常,可以指定多个异常类型,按顺序捕获。如果没有指定异常类型,将捕获所有异常。ensure
:用于定义在所有情况下都会执行的代码块,无论是否发生异常。raise
:用于手动抛出异常,可以指定异常类型和异常信息。以下是一个简单的Ruby异常处理示例:
begin
# 可能引发异常的代码
result = 10 / 0
rescue ZeroDivisionError => e
# 处理ZeroDivisionError异常
puts "发生了除以零的错误:#{e}"
rescue => e
# 处理其他异常
puts "发生了未知错误:#{e}"
ensure
# 无论是否发生异常都会执行的代码
puts "异常处理结束"
end
在这个示例中,我们尝试执行一个除以零的操作,这会引发ZeroDivisionError
异常。通过使用rescue
关键字,我们可以捕获并处理这个异常。如果没有指定异常类型,将捕获所有异常。ensure
关键字确保在所有情况下都会执行某些代码。