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关键字确保在所有情况下都会执行某些代码。