@Test
	void duplicateCatchHandlers() {
		String asm = """
				.method public static example ()V {
					exceptions: {
				       {  A,  B,  C, Ljava/lang/Throwable0; },
				       {  A,  B,  D, Ljava/lang/Throwable1; },
				       {  A,  B,  E, Ljava/lang/Throwable2; },
				       {  A,  B,  F, Ljava/lang/Throwable3; }
				    },
				    code: {
				    A:
				        invokestatic Example.throwing ()V
				    B:
				        goto END
				    C:
				        invokevirtual java/lang/Throwable.printStackTrace ()V
				        invokestatic  com/example/MyApp.logFailure ()V
				        goto END
				    D:
				        invokevirtual java/lang/Throwable.printStackTrace ()V
				        invokestatic  com/example/MyApp.logFailure ()V
				        goto END
				    E:
				        invokevirtual java/lang/Throwable.printStackTrace ()V
				        invokestatic  com/example/MyApp.logFailure ()V
				        goto END
				    F:
				        invokevirtual java/lang/Throwable.printStackTrace ()V
				        invokestatic  com/example/MyApp.logFailure ()V
				        goto END
				    END:
				        return
				    }
				}
				""";
		validateAfterAssembly(asm, List.of(DuplicateCatchMergingTransformer.class), dis -> {
			assertEquals(1, StringUtil.count("printStackTrace", dis), "Catch block contents were not merged");
			assertEquals(5, StringUtil.count("goto", dis), "Expected 5 goto instructions after merging");
		});
	}
Remove duplicate code among handler blocks where possible.
recaf-core/src/test/java/software/coley/recaf/services/deobfuscation/TryCatchDeobfuscationTest.java