SyntaxErrorはScriptErrorを継承している
タイトルの通り。StandardErrorを継承しているわけではないので、rescueで例外クラスを指定しなかったときに捕捉できない。こういうことを書いたってことは普段からエラー処理が適当だってことがよく分かる。しっかりしたい。
ちなみにScriptErrorのサブクラスはrequire失敗時に発生するLoadErrorとNotImplementedErrorがある。
NotImplementedErrorは実装されていない機能が呼ばれたときに発生する。OSがfsyncをサポートしていないときにIO#fsyncを呼んだりするときがそう。