Coming from nowhere on this...is there a place where it would be
convenient to flag which behavior the user (of the library) wants? I
think you're correct that most of the time you'd just want to blow
through it (or replace it), but for the situation where this isn't the
case, I think the Right Thing to do is raise the exception. I don't
think you would want to bury it in some assumption made internal to the
library unless that assumption can be turned off.
On 11/19/2013 07:51 PM, Jonathan Rochkind wrote:
> ruby-marc users, a question.
> I am working on some Marc8 to UTF-8 conversion for ruby-marc.
> Sometimes, what appears to be an illegal byte will appear in the Marc8
> input, and it can not be converted to UTF8.
> The software will support two alternatives when this happens: 1)
> Raising an exception. 2) Replacing the illegal byte with a replacement
> char and/or omitting it.
> I feel like most of the time, users are going to want #2. I know
> that's what I'm going to want nearly all the time.
> Yet, still, I am feeling uncertain whether that should be the default.
> Which should be the default behavior, #1 or #2? If most people most
> of the time are going to want #2 (is this true?), then should that be
> the default behavior? Or should #1 still be the default behavior,
> because by default bad input should raise, not be silently recovered
> from, even though most people most of the time won't want that, heh.