Programdan çıkan ve bir mesaj görüntüleyen tek bir satır işlev çağrısı var mı?Bir çıkış iletisi nasıl oluşturulur
die("Message goes here")
Bunu yazmaktan yoruldum: Ben Perl o kadar basit olduğunu biliyorum
puts "Message goes here"
exit
Programdan çıkan ve bir mesaj görüntüleyen tek bir satır işlev çağrısı var mı?Bir çıkış iletisi nasıl oluşturulur
die("Message goes here")
Bunu yazmaktan yoruldum: Ben Perl o kadar basit olduğunu biliyorum
puts "Message goes here"
exit
abort
işlevi bunu yapar.
abort("Message goes here")
Not: Örneğin: abort
mesajı STDERR
yazılır puts
aksine STDOUT
yazacağına hangi.
Vay! Güzel bul! Çok kötü onlar bu işlevsellik ile sadece aşırı yükleme yapmadı .... –
Not, iptal işlemi bir arızayı temsil eden yanlış durumdan programdan çıkar. Varsayılan olarak çıkış, gerçek başarıyı temsil eden bir durumla çıkar. Durum için doğru olanı kullandığınızdan emin olun. –
re. Mike Stone'un yorumu, bazen Ruby'nin birbiriyle iletişim kurmayan bir ekip tarafından yazıldığı anlaşılıyor, değil mi? (Yine de, programlamak çok kolay.) – JellicleCat
Böyle bir fonksiyonun duymadım, ama uygulamak için yeterli önemsiz olacaktır. Bu, tüm komut dahil bazı .rb dosyasında tanımlanması durumunda .. Sonra
def die(msg)
puts msg
exit
end
, bunu yapamayacağınız anlamına gelmez yerleşik değil sırf .... altınız Kendiniz ;-)
kodunuzda gerçek bir hata belirtmek istiyorsanız'İptal' işlevi çıktığında (aşağıdaki cevaba bakın) –
İptal işlevi işlevi sizin için ne zaman kod yazıyor? –
@ChrisBunch Bu **, ** abort işleviyle aynı değil: 'exit' varsayılan olarak başlamış gibi geri dönüyor. 'iptal' bir hata verir. 'Çıkış 1 'de bir hata döndürecektir. – TemporalWolf
, bir RuntimeError
istisna yükseltebilir:
raise RuntimeError, 'Message goes here'
Bu bir stacktrace yazdırır, istisna tipi kaldırdı ve söz konusu ileti ediliyor. Kullanıcılarınıza bağlı olarak, bir stacktrace çok korkutucu olabilir ve asıl mesaj gürültüde kaybolabilir. Diğer taraftan, gerçek bir hata nedeniyle ölürseniz, bir stacktrace size hata ayıklama için ek bilgi verecektir.
Program bittiğinde bazı kodları yürütmenin bir yolunu arıyorum.
Found this:
Kernel.at_exit { puts "sayonara" }
# do whatever
# [...]
# call #exit or #abort or just let the program end
# calling #exit! will skip the call
Aranan birden çok kez birden fazla işleyici kaydeder.
Küçük bir yorum, "koyar" yazdıklarını yazıyor, oysa "ölüyor" yazıyor, yani: "stderr.puts" Mesaj buraya geliyor ". – cdarke
Bunun bir cevap olmadığını biliyorum, ama bu soruya cevap verdi, teşekkürler – Patrick
Sadece referans için, Python'da 'sys.exit (" Mesaj stderr'e gider ")' dir. –