Material.selectTechnique() throws IllegalStateException, IllegalArgumentException, UnsupportedOperationException
(shouldnt it be declared that way?)
Those exceptions go on uncatched and terminate the application. It would be better to implement a kind of fallback to supported techniques and to try/catch calls to that fn. i havent read enough sourcecode° to implement it myself, but perhaps someone can do this.
°^= means: i not yet know how the techniques work;-)
Specifying any of those exceptions as being thrown does not change anything since they extend RuntimeException, which is an unchecked exception.
However you’re right about there being way too many ways that the method could fail, not to mention the wide variety of exceptions thrown.
Maybe we can reduce it to one exception type …