I recent had to decompile a projects .class files. The decompiler worked pretty well, except now in the code I have these weird little snippets:
break MISSING_BLOCK_LABEL_666;
Exception exception;
exception;
I have noticed a pattern in it though, it seems to appear right after the closing brace of ‘catch’ statements in the code. I does not however appear after each and every catch statement… But it’s something to wonder about.
If anyone has had this type of problem after decompiling or just an idea of why this would happen, I would really appreciate some help!
Please don’t hesitate to ask in case you need more info…
I dont know this particular case, but the Java Compiler does a lot of improvements and optimizations. So if you decompile the classes, you will see this optimizations instead of the original Code. The Compiler resolves “Syntactic Sugar” (Special code forms which make your life easier), and i think your problem is something like that. For Example: every public static final you use in your code will be resolved to its value in the decompiled Code (like Integer.MAX_INT), or for-loops with an iterator (
for foo f: foos) will be resolved in something else. Just look at an decompiled Enumerator.you cant rely on the decompiler to give you the exact code, soeone has written, but to give you the code the Compiler has optimized.