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