utf-8-codec が transcoder の error-handling-mode に対応
手抜き実装だった I/O のエラー通知の仕組みを実装。その上に utf-8-codec のエラー処理を載せてうまくいった。
将来的に Mona に Mosh を移植するので C++ の例外を使わない。 setjmp/longjmp を利用し TRY/CATCH マクロを書くなど涙ぐましい一面も。
さくさくと他の codec も同じようにエラー処理をしよう。
(test/exception i/o-decoding-error? (call-with-port (open-file-input-port "./test/invalid-utf8.txt" (file-options no-truncate no-fail) (buffer-mode none) (make-transcoder (utf-8-codec) (native-eol-style) (error-handling-mode raise))) read-char))