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.

-Jon


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.

Jonathan

Reply via email to