Thanks for the tip! This actually turned out really cool. Because the java compiler adds declarations that all methods can throw RuntimeException behind the scenes, I was able to make this work perfectly while at the same time handling the case where no exception is thrown. If only Java autoboxed void properly, this would probably be close to compiling...