It depends on whether this happens during development or release.
During development, you will have all kinds missing things, errors, and mess-ups, constantly, all the time, and you may even want to "hot" load assets on demand or replace an asset while the game is running. You might edit scripts with the game running to test an AI performs better, or anything the like.
It is most annoying if the program shows an error dialog and exits every time, and you must restart it which takes 2-3 minutes. The goal in development is to stall you (whose time is the most precious asset) as little as possible.
So, if for example, a texture is missing, you would want to see something like a red-white checkerboard, maybe with the word "missing" spelled on top of it as a replacement texture, so it is immediately obvious that something is odd. But you do not want the game to exit gracefully, nor even crash. Detailled information about what is missing in your logfile is immensely helpful.
On the other hand, in a release, the complete set of asset files should ideally have gone through your automated asset pipeline. This needs to be not much more than a simple parser that reads in all your JSONs and then cross-checks that every module is consistent in itself, and verifies that every asset that you reference is actually there, and then zips the whole bunch of files up in some known (but not necessarily standard) way that is easy for your engine to read, optionally adding a few checksums.
You know that there can be no failure because your pipeline checked that everything was there before you released the package to the end user. So if a failure happens, either there has been a transmission error, or more likely the user is trying to cheat. In either case, the program should display a message saying that asset files are damaged, and exit.
Alternatively, you might offer the option to download a pristine copy of the assets from the internet (if you have a download server). But in order to avoid a customer support nightmare, be sure to ask prior to downloading gigabytes of data.
Reality may look different, you may even find missing assets on AAA titles whose makers "should know", but they usually have unrealistic deadlines and large, changing teams, too. Ideally everything you ship has gone through the automated pipeline and is guaranteed to be complete.