void (String message, Object... details) { var builder = new StringBuilder().append(message).append("\n--- children ---"); for (var child : getArraySafely(true)) builder.append('\n').append(verboseToString(child)); builder.append("--- details ---"); for (var o : details) builder.append('\n').append(o instanceof Object[] ? Arrays.toString((Object[])o) : o.toString()); throw new AssertionError(builder.toString()); }