我只是在尝试使用java.util.Currency
,但对于一些货币代码,它会抛出java.lang.IllegalArgumentException
异常。
这是我的简单代码:
java.util.Currency c = java.util.Currency.getInstance(code);
根据Java文档
public static Currency getInstance(String currencyCode)
Returns the Currency instance for the given currency code.
Parameters:
currencyCode - the ISO 4217 code of the currency
Returns:
the Currency instance for the given currency code
Throws:
NullPointerException - if currencyCode is null
IllegalArgumentException - if currencyCode is not a supported ISO 4217 code.
我在一些代码中遇到了这个异常,其中有:
- UYI
- COU
- TMT
根据ISO_4217,所有上述代码都是官方的ISO 4217货币名称,我不确定为什么在这种情况下会出现此异常? 我需要做些其他事情或向JVM传递一些其他信息以获取正确的值吗?能够帮助我解决困惑的任何帮助都将不胜感激,或者可以指向java doc所指的 ISO 4217 currency ,因为我可以看到ISO 4217列表中的上述代码,因此我可能正在查看错误的文件/参考资料。
为了提供更多见解,以下是堆栈跟踪:
Exception in thread "main" java.lang.IllegalArgumentException
at java.util.Currency.getInstance(Unknown Source)
at java.util.Currency.getInstance(Unknown Source)
at CurrencyTest1.main(CurrencyTest1.java:10)
和Java版本
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b17, mixed mode)