diff --git a/src/java.base/share/classes/java/lang/Character.java b/src/java.base/share/classes/java/lang/Character.java index 70f8b1e889ab1a8e2ca4ded90d3465bc6cc83311..d782c7dfcb465d555e514dc1c266ada730875d21 100644 --- a/src/java.base/share/classes/java/lang/Character.java +++ b/src/java.base/share/classes/java/lang/Character.java @@ -3590,7 +3590,8 @@ class Character implements java.io.Serializable, Comparable { */ 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 @@ class Character implements java.io.Serializable, Comparable { 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 @@ class Character implements java.io.Serializable, Comparable { */ 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 @@ class Character implements java.io.Serializable, Comparable { 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 @@ class Character implements java.io.Serializable, Comparable { 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 @@ class Character implements java.io.Serializable, Comparable { */ 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) diff --git a/src/java.base/share/classes/java/lang/String.java b/src/java.base/share/classes/java/lang/String.java index 0442e3b93429ff70b8e85944fd22776b19865b81..d9ab1dc46626bcc22989ca5d214fdbe0ddc5f577 100644 --- a/src/java.base/share/classes/java/lang/String.java +++ b/src/java.base/share/classes/java/lang/String.java @@ -3178,6 +3178,7 @@ public final class String return new String(StringUTF16.toBytesSupplementary(codePoint), UTF16); } - throw new IllegalArgumentException("Not a valid Unicode code point"); + throw new IllegalArgumentException( + format("Not a valid Unicode code point: 0x%X", codePoint)); } }