libjpegやlibpngのエラー処理って、かなり醜いことになっていて、通常、Cだけでコーディングする場合には、setjmp/longjmpのお世話になってしまいます。で、そうすると、リソースリークなどの温床になることは必至で、個人的には大嫌いなものの一つです。こいつらのせいで、JPEG/PNGライブラリを自分で書いてやろうかとか思ってしまうぐらい嫌いです。 で、C++ならば当然、こういう場合には、例外を使ってすっきりと書けます!と言いたい感じになります。実際、JPEGエンコードに当たっては、 // エラー処理のためのお膳立て class my_jpeg_error_mgr { public: my_jpeg_error_mgr(jpeg_compress_struct& cinfo) { cinfo.err = jpeg_std_error(&pub); pub.error_exit