8198989: Provide more diagnostic IAE messages

Reviewed-by: lancea
This commit is contained in:
Naoto Sato 2018-03-12 20:47:21 -07:00
parent de3604ea0c
commit 6744ceac88
2 changed files with 14 additions and 7 deletions

View file

@ -3590,7 +3590,8 @@ class Character implements java.io.Serializable, Comparable<Character> {
*/
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<Character> {
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<Character> {
*/
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<Character> {
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<Character> {
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<Character> {
*/
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)

View file

@ -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));
}
}