İstisna'dan çıkmayan bir durum ve istisna için bir yol var mı? Ben 'kurtarma İstisna' ya da daha büyük ölçüde, 'kurtarma Nesne' ile bu yakalayabilirsiniz biliyorumBir ruby "istisnasının" kurtarma nesnesinden geçebileceği bir durum var mı?
require 'timeout'
begin
timeout(1) {sleep(50)}
rescue StandardError => e
puts e.message
end
, ama bu bana biraz garip gelebilir:
Ne kaçınmaya çalışıyorum şey gibidir .
StandardError'ın İstisna'dan geldiğini ve StandardError ve torunları olduklarında istisnanın kurtarılmadığını biliyorsunuzdur. Sorunuzdan tamamen belli değil. – kch
Evet, sadece kurtarma işlemine girecek bir istisna örneğine ihtiyacım vardı. Dediğin gibi, istisnadan gelmeyen bir şey verirsen barfs yetiştir. Bir istisnanın kaldırılabilmesi için tek yol bu mu? C API'sı aracılığıyla yükselen herhangi bir şey aynı kısıtlamalara sahiptir (yine, bir istisna oluşturabileceğinizi varsayalım). –
C API hakkında hiçbir fikrim yok, ama sadece bir şey yapıp yapmadığını varsayalım Ruby'nin kendisinin izin vermediği API, API'nin uygunsuz bir kullanımıdır (ve API'nın kendisinde bir hata olabilir). Yani, çok varsayımsal. Bunun sadece geçmesine izin verirdim. – kch