
Issue #19578 has been updated by Dan0042 (Daniel DeLorme). Thank you, I searched but wasn't able to find it. But in that case I think the documentation should be updated. This: Terminate execution immediately, effectively by calling Kernel.exit(false). If msg is given, it is written to STDERR prior to terminating. read to me like nothing is written to STDERR if msg is not given. Perhaps update to something like: Terminate execution immediately, effectively by calling Kernel.exit(false). If msg is given, it is written to STDERR prior to terminating. Otherwise, if an exception was raised, print its message. ---------------------------------------- Bug #19578: abort() shows stack trace when run within rescue clause https://bugs.ruby-lang.org/issues/19578#change-102653 * Author: Dan0042 (Daniel DeLorme) * Status: Rejected * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- I sometimes use the pattern `print(str) rescue abort` in order to exit without stack trace when the output of a ruby program is interrupted by SIGPIPE, ex: `./printstuff.rb | head` It seems that since ruby 2.7 this results in printing the stack trace. This is not the case when using `abort` by itself. Is this intended? I would expect `abort` to behave much like `exit(1)`, as it always has. -- https://bugs.ruby-lang.org/