มีการเรียกฟังก์ชันหนึ่งบรรทัดที่ออกจากโปรแกรมและแสดงข้อความหรือไม่? ฉันรู้ใน Perl มันง่ายเหมือน:
die("Message goes here")
ฉันเบื่อที่จะพิมพ์สิ่งนี้:
puts "Message goes here"
exit
sys.exit("Message goes to stderr")
เท่านั้น
มีการเรียกฟังก์ชันหนึ่งบรรทัดที่ออกจากโปรแกรมและแสดงข้อความหรือไม่? ฉันรู้ใน Perl มันง่ายเหมือน:
die("Message goes here")
ฉันเบื่อที่จะพิมพ์สิ่งนี้:
puts "Message goes here"
exit
sys.exit("Message goes to stderr")
เท่านั้น
คำตอบ:
abort
ฟังก์ชั่นไม่นี้ ตัวอย่างเช่น:
abort("Message goes here")
หมายเหตุ: abort
ข้อความจะถูกเขียนไปSTDERR
เมื่อเทียบกับการที่จะเขียนถึงputs
STDOUT
หากคุณต้องการแสดงถึงข้อผิดพลาดที่เกิดขึ้นจริงในรหัสของคุณคุณสามารถยกRuntimeError
ข้อยกเว้น:
raise RuntimeError, 'Message goes here'
สิ่งนี้จะพิมพ์สแต็คเทรซชนิดของข้อยกเว้นที่เพิ่มขึ้นและข้อความที่คุณระบุ สแต็คเทรซอาจน่ากลัวเกินไปและขึ้นอยู่กับผู้ใช้ของคุณและข้อความจริงอาจหายไปจากเสียงรบกวน ในทางกลับกันถ้าคุณตายเนื่องจากข้อผิดพลาดจริง stacktrace จะให้ข้อมูลเพิ่มเติมสำหรับการดีบัก
ฉันไม่เคยได้ยินเกี่ยวกับฟังก์ชันนี้มาก่อน
def die(msg)
puts msg
exit
end
จากนั้นหากมีการกำหนดไว้ในไฟล์. rb บางไฟล์ที่คุณใส่ในสคริปต์ของคุณทั้งหมดคุณเป็นทอง .... เพียงเพราะมันไม่ได้อยู่ในตัวไม่ได้หมายความว่าคุณไม่สามารถทำได้ด้วยตัวคุณเอง ;-)
exit
ค่าเริ่มต้นที่จะกลับมาราวกับว่ามันประสบความสำเร็จ abort
ส่งคืนความล้มเหลว exit 1
จะส่งคืนความล้มเหลวเช่นกัน
ฉันมาถึงที่นี่เพื่อค้นหาวิธีการรันโค้ดบางอย่างเมื่อใดก็ตามที่โปรแกรมสิ้นสุดลง
พบสิ่งนี้ :
Kernel.at_exit { puts "sayonara" }
# do whatever
# [...]
# call #exit or #abort or just let the program end
# calling #exit! will skip the call
เรียกว่าหลายครั้งจะลงทะเบียนหลายเครื่องจัดการ
puts
เขียนที่ stdout ในขณะที่die
เขียนไป stderr$stderr.puts "Message goes here"
เพื่อ: