rescueで例外を捕獲するときに、どうやってテストするのか、積年の謎だったんだけど、結局ソースコード読むことにして解決した。
===でテストしてる。
===はcase式で値を比較するときに使われる演算子で、大体クラスCのC.===はそのクラスのオブジェクトに対してtrueを返するようになっている。
String === "a"
Object === "a"
Integer === "a"
このとき、===はsymmetricではないことに注意。なんか、方向が無い記号なので嫌な感じだけど。そんなことでは、Rubyistはうろたえないッ