cache thrift_file load

cache thrift_file load
yah I see, but I still don't like the approach here. only raise an exception when it's really an exception. this is not. it was expected to happen. maybe return `None` is better.