Ruby中的异常处理

Ruby异常处理

异常是在运行时在代码段中以对象形式出现的异常情况。有某些预定义的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异常示例