我的构想是在异常类中进行国际化。
public myException extends Exception
{
     myException(ExceptionMessage)
     {
          ResourceBundle bundle=ResourceBundle.getBundle("properties.properties",currentlocale);
          String exceptionmessage=bundle.getString(message);
          super(exceptionmessage);
     }
}
但是调用超类的构造方法一定要写在第一句。
请问,该怎样将异常信息国际化?

解决方案 »

  1.   

    不是很明白楼主的意思,
    构造方法ExceptionMessage是什么,是通过key去取国际化异常信息然后构造异常类?
    那为何不先取好再构造呢,非要在构造的时候取呢?
      

  2.   

    不好意思,打错了ExceptionMessage就是String exceptionmessage=bundle.getString(message);中的message,就是key。
    先取好再构造就要在抛出异常的类中进行国际化。但是这样每个类都要添加国际化的内容。
      

  3.   

    哦那你需要这样的话再写个构造器好了
    myException extends Exception 

        myException(String message) 
        { 
              ResourceBundle bundle=ResourceBundle.getBundle("properties.properties",currentlocale); 
              String exceptionmessage=bundle.getString(message); 
              this(message,exceptionmessage);
        } 
        myException(String key, String content) {
                super(content);
        }
        
    } 不推荐这么做,因为取信息也可能异常的,异常类基本不做逻辑或者可能抛出异常的操作的
    一般都是写个工具类专门通过key提取国际化信息然后在构造自己的异常类的,即使取信息抛错也是容易捕获的
      

  4.   

    是的,传个KEY就行了,或者有需求的话加Locale对象
      

  5.   

    好像是不行this也是调用构造器也得放第一句的,不好意思哈:)
    我也没办法了,期待高手吧~
      

  6.   

    Throwalbe中有个方法getLocalizedMessage,哪位高人指点一下怎么使用?