异常是在运行时在代码段中以对象形式出现的异常情况。有某些预定义的Exception类,而我们可以创建称为Custom异常的异常。接受会在运行时扭曲程序的正常流程。异常处理是处理此类异常情况的过程,或者您也可以将其称为有害事件。Ruby中有一个独特的类,称为Exception类,其中包含专门定义用于处理意外事件的方法。
要处理异常,您可以从引发和营救块获得帮助。异常处理的一般语法如下:
begin raise # 在异常引发的地方阻止 rescue # 阻止异常救援 end
首先让我们看一下创建异常情况的代码:
a = 12 b = a/0 puts "Hello World" puts b
上面的Ruby代码将给您以下错误:
check.rb:7:in '/': divided by 0 (ZeroDivisionError)
您可以观察到,引发Exception时,它会中断指令流,并且不会执行在具有Exception的同一条语句之后编写的语句。
我们可以通过以下方式修改上述代码,以避免其余指令的执行失真。
=begin Ruby program to show Exception Handling. =end begin a = 12 raise b = a/0 rescue puts "Exception rescued" puts "Hello World" puts b end
输出结果
Exception rescued Hello World
在上面的程序中,您可以观察到我们在begin ... end块内编写代码。我们将语句放在“ raise”中,这可能会引起任何形式的异常。我们使用了抢救声明来处理该异常。您可以看到引发的异常不会影响指令的其余部分。我们将在最后打印“ Hello World”。
我们可以创建异常称为自定义异常与任何用户定义的方法的帮助。让我们举一个例子,以更好地了解实现:
=begin Ruby program to show Exception Handling. =end def exception_arised begin puts 'Hello! Welcome to the nhooo.com.' puts 'We are still safe from Exception' # 使用抬高生成异常 raise 'Alas! Exception Generated!' puts 'After Exception created' # 使用Rescue方法处理异常 rescue puts 'Hurrah! Exception handled! We are safe now' end puts 'We are out of begin!' end # 调用方法 exception_arised
输出结果
Hello! Welcome to the nhooo.com. We are still safe from Exception Hurrah! Exception handled! We are safe now We are out of begin!
在上面的代码,我们正在创造我们的异常与用户定义的方法的帮助下“exception_arised”。然后,我们正在调用它。以上是Custom异常的示例。