SyntaxErrorはScriptErrorを継承している

タイトルの通り。StandardErrorを継承しているわけではないので、rescueで例外クラスを指定しなかったときに捕捉できない。こういうことを書いたってことは普段からエラー処理が適当だってことがよく分かる。しっかりしたい。

ちなみにScriptErrorのサブクラスはrequire失敗時に発生するLoadErrorとNotImplementedErrorがある。

NotImplementedErrorは実装されていない機能が呼ばれたときに発生する。OSがfsyncをサポートしていないときにIO#fsyncを呼んだりするときがそう。