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