I don't think we should have the try/catch here and the fs::exists... loadAsset will do all of that for us. In other words, if a block user passes a path that doesn't exist, loadAsset will throw an appropriate exception (AssetLoadExc). It should be the block user's responsibility to either make sure they're passing a valid path, or to try/catch on their side.