diff -r 7c795d301dbf -r 948ece16567b src/java.base/share/classes/java/lang/Character.java --- a/src/java.base/share/classes/java/lang/Character.java Mon Mar 12 16:09:18 2018 -0700 +++ b/src/java.base/share/classes/java/lang/Character.java Mon Mar 12 20:47:21 2018 -0700 @@ -3590,7 +3590,8 @@ */ public static UnicodeBlock of(int codePoint) { if (!isValidCodePoint(codePoint)) { - throw new IllegalArgumentException(); + throw new IllegalArgumentException( + String.format("Not a valid Unicode code point: 0x%X", codePoint)); } int top, bottom, current; @@ -3649,7 +3650,8 @@ public static final UnicodeBlock forName(String blockName) { UnicodeBlock block = map.get(blockName.toUpperCase(Locale.US)); if (block == null) { - throw new IllegalArgumentException(); + throw new IllegalArgumentException("Not a valid block name: " + + blockName); } return block; } @@ -7394,7 +7396,8 @@ */ public static UnicodeScript of(int codePoint) { if (!isValidCodePoint(codePoint)) - throw new IllegalArgumentException(); + throw new IllegalArgumentException( + String.format("Not a valid Unicode code point: 0x%X", codePoint)); int type = getType(codePoint); // leave SURROGATE and PRIVATE_USE for table lookup if (type == UNASSIGNED) @@ -8088,7 +8091,8 @@ toSurrogates(codePoint, dst, dstIndex); return 2; } else { - throw new IllegalArgumentException(); + throw new IllegalArgumentException( + String.format("Not a valid Unicode code point: 0x%X", codePoint)); } } @@ -8116,7 +8120,8 @@ toSurrogates(codePoint, result, 0); return result; } else { - throw new IllegalArgumentException(); + throw new IllegalArgumentException( + String.format("Not a valid Unicode code point: 0x%X", codePoint)); } } @@ -10178,7 +10183,8 @@ */ public static String getName(int codePoint) { if (!isValidCodePoint(codePoint)) { - throw new IllegalArgumentException(); + throw new IllegalArgumentException( + String.format("Not a valid Unicode code point: 0x%X", codePoint)); } String name = CharacterName.getInstance().getName(codePoint); if (name != null)