From: her@... Date: 2017-11-30T10:13:09+00:00 Subject: [ruby-core:84000] [Ruby trunk Feature#14141] Exception#display to display same formatted text for IO Issue #14141 has been updated by sorah (Sorah Fukumori). File 0001-Add-Exception-formatted-to-get-a-formatted-string.patch added File 0002-Add-Exception-display-to-log-exception.patch added Hmm. Changed my mind. Implemented `Exception#formatted` with this patch. I'm not sure this name is proper, suggestions appreciated ---------------------------------------- Feature #14141: Exception#display to display same formatted text for IO https://bugs.ruby-lang.org/issues/14141#change-68080 * Author: sorah (Sorah Fukumori) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Most people want to log caught exceptions to stderr (or somewhere else) then continues their program as usual. ``` def the_program # ... raise "failure!" # ... rescue RuntimeError => e $stderr.puts "#{e.message} (#{e.class})\n\t#{e.backtrace.join("\n\t")}" retry end ``` I'm very bored to write error logging many time... I want to log errors in the default format of Ruby, just like the following: ``` rescue RuntimeError => e e.display # ... ``` From Ruby 2.5, we've started branching error formatting on TTY-ness of `$stderr`. It'd be bit more useful if we can log using the same format with the format which Ruby determines. Ruby already has `Object#display`. One consideration is to retrieve formatted String from Exception object, but the current error logging code (eval_error.c) depends on IO, so I want to start from just having `Exception#display`. I think most use case is just to log errors into IO. ---Files-------------------------------- 2.patch (8.74 KB) 0001-Add-Exception-formatted-to-get-a-formatted-string.patch (8.36 KB) 0002-Add-Exception-display-to-log-exception.patch (1.99 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: