いや、上でtryしててもFatal ErrorはException投げる前にその場で落ちる。
だからfunctionの中でthrowして、上でcatch。