Rubyで、プログラムを自動的に中止し、囲んでいる開始/レスキューブロックを無視する例外を発生させることは可能ですか?
2872 次
4 に答える
8
残念ながら、これらのexit答えはどれも機能しません。捕まえることができるexitレイズ。SystemExit観察:
begin
exit
rescue SystemExit
end
puts "Still here!"
@dominikhが言うように、代わりに使用する必要がありますexit!:
begin
exit!
rescue SystemExit
end
puts "Didn't make it here :("
于 2012-03-04T00:13:45.097 に答える
1
Eduはすでに尋ねました:プログラムを中止したい場合は、まっすぐ進んで「exit」を使用してみませんか
1つの可能性:独自の例外を定義することができ、例外が呼び出されると、例外は終了してプログラムを停止します。
class MyException < StandardError
#If this Exception is created, leave programm.
def initialize
exit 99
end
end
begin
raise MyException
rescue MyException
puts "You will never see meeeeeee!"
end
puts "I will never get called neither :("
于 2012-03-03T23:13:38.787 に答える
0
これはあなたが望むことをしますか?
begin
puts Idontexist
rescue StandardError
exit
puts "You will never see meeeeeee!"
end
puts "I will never get called neither :("
于 2012-03-03T23:01:18.133 に答える
0
私の答えはマランの答えと似ていますが、少し異なります。
begin
puts 'Hello'
# here, instead of raising an Exception, just exit.
exit
puts "You will never see meeeeeee!"
rescue # whatever Exception
# ...
end
puts "I will never get called neither :("
于 2012-03-03T23:13:45.513 に答える