加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java.util.Currency.getInstance抛出IllegalArgumentException

发布时间:2020-12-14 14:48:06 所属栏目:Java 来源:网络整理
导读:我只是用 java.util.Currency来尝试我的手,但是对于很少的货币代码,它抛出了我的java.lang.IllegalArgumentException 这是我的简单代码 java.util.Currency c = java.util.Currency.getInstance(code); 根据java文档 public static Currency getInstance(Str
我只是用 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传递一些其他信息来获取正确的值?
任何帮助清除我的混乱是非常明显的,或者可以指向我的ISO文档指向的ISO 4217货币,因为我可以看到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)

解决方法

这是一个有趣的问题.

COU和UYI都不是真正的货币. COU是旧的委内瑞拉货币(不再使用),UYI是指数货币,可能被银行用来整理汇率.

在java 1.7.0_u7中,TMT工作正常. TMT于2009年推出,所以Java 6不知道代码是有道理的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读