As long as you see a texture load as I/O operation, then I agree. But why do you not expect checked exception on implicit class load ? It is loaded also loaded by I/O after all.
For me, texture is same kind of resource as class file. I do not write try/catch blocks when loading new class by referencing it and I do not want to write try/catch block to access other _granted_ resources.
In a way I agree but I think this is looking only at the specific use case where all texutres will be bundled. Who says one has to use the TextureLoader class with Xith3D? I look at it as a generic fast image loading library, which it really is.
If a model loader is being used, the loader can simply catch the exceptions for you and bundle them as a RuntimeException if that is what you prefer.
For me, checked exceptions are for things you cannot trust and unchecked are for things you can expect to work well, unless some kind of unrecoverable error happens (be it programmer error, jvm setup, program setup, etc). I think that most people will agree here. Difference between us is that I consider textures as guaranteed resource, same as any of class files of program. You look at it as transient, unsure thing, which can dissappear at any moment.
We both agree that exception should be thrown. As far as checked versus unchecked is concerned, there is no real way to just say 'this is right'. Best examples are java core - NumberFormatException should be checked for sure, while I would personally rather not force people to check for CloneableNotSupportedException.
Please only tell me, what will you put inside catch blocks for cases where texture which you have bundled with application is not there ? It cannot happen in normal case, but catch block has to be written. I have too many times seen rethrow as unchecked exception...
I would probably log the exception and move on - others may rethrow it thus killing the application.
While a missing texture is bad - it's not the end of the world. I dont' want my game to fail just because I forgot to package the texture for a single blade of grass (and forgot to catch the RuntimeException).
Using checked exceptions forces the programmer to choose
if they want to handle them or not. I think that is better than leaving them to their fate.
Having unchecked exceptions everywhere also makes the application more crash prone IMHO. There are many exceptions which the application really should recover from and move on and checked exceptions would make people more aware of them.