正如大家上面提到的 –

据我了解,getMessage()返回异常的名称。 getLocalizedMessage()以用户的本地语言(中文,日语等))返回异常的名称。为了使这个工作,您调用getLocalizedMessage()的类必须覆盖getLocalizedMessage()方法。如果没有,则调用其中一个超类的方法,默认情况下只返回getMessage的结果。

除此之外,我想放一些代码段来解释如何使用它。

如何使用它

Java没有什么魔法,但它确实提供了一种使我们的生活更轻松的方法。

要有效地使用getLocalizedMessage(),我们必须覆盖默认行为。

import java.util.ResourceBundle;

public class MyLocalizedThrowable extends Throwable {

ResourceBundle labels = ResourceBundle.getBundle("loc.exc.test.message");

private static final long serialVersionUID = 1L;

public MyLocalizedThrowable(String messageKey) {

super(messageKey);

}

public String getLocalizedMessage() {

return labels.getString(getMessage());

}

}

在此示例中,您必须在loc / exc / test路径中放置特定于语言的属性文件。例如:

message_fr.properties(包含一些键和值):

key1=this is key one in France

message.properties(包含一些键和值):

key1=this is key one in English

现在我们假设我们的异常生成器类是这样的

public class ExceptionGenerator {

public void generateException() throws MyLocalizedThrowable {

throw new MyLocalizedThrowable("key1");

}

}

主要课程是:

public static void main(String[] args) {

//Locale.setDefault(Locale.FRANCE);

ExceptionGenerator eg = new ExceptionGenerator();

try {

eg.generateException();

} catch (MyLocalizedThrowable e) {

System.out.println(e.getLocalizedMessage());

}

}

默认情况下,如果您在“英语”环境中执行,它将返回“英文”键值。如果将本地设置为法国,您将从message_fr文件中获取输出。

何时使用

如果您的应用程序需要支持l10n / i18n,则需要使用它。但大多数应用程序不需要,因为大多数错误消息不是最终客户,而是支持工程师/开发工程师。

java e e_java – e.getMessage()和e.getLocalizedMessage()之间的区别相关推荐

  1. java中static、final 和 static final之间的区别

    java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...

  2. java 逻辑或 作用_Java开发中与之间的区别,你真的知道吗?

    &与&& 首先来讲一下&&,这个在java逻辑运算符里面被称为短路与,它与&逻辑与只差了一个& ,但是区别却很大,它的作用是如果前面的表达式运行 ...

  3. Java中 break、continue 和 return三者之间的区别

    一.Java break 可以直接强行退出当前的循环,忽略循环体中任何其他语句和循环条件测试 以下实例使用了 break 关键字来跳出当前循环: public class Main {public s ...

  4. IO流介绍、java常用的几个IO流类之间的区别,以及各自的用法、使用场景

    1. IO流介绍 IO流(Input Output Stream,输入输出流),表示数据在程序内存和磁盘之间的传输.按照数据流的流向不同分为输入.输出流,输入流表示程序从磁盘读入数据,输出流表示程序往 ...

  5. Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  6. java有var吗_java – Var和Var之间的区别

    tldr; 虽然var和var都会将它们应用到的变量增加,但var返回的结果是变量在递增前的值,而var返回的结果是应用增量后的变量值. 进一步说明 当var或var形成完整的语句(如在你的例子中), ...

  7. java dateformat hh_SimpleDateFormat上的Java HH:mm和hh:mm之间的区别

    kk:mm,HH:mm和hh:mm格式有何区别? SimpleDateFormat broken = new SimpleDateFormat("kk:mm:ss"); broke ...

  8. mock()java,关于java:@ Mock,@ MockBean和Mockito.mock()之间的区别

    创建测试和模拟依赖项时,这三种方法有什么区别? @MockBean: @MockBean MyService myservice; @嘲笑: @Mock MyService myservice; Mo ...

  9. java generics_java – Generics中原始类型和?之间的区别

    的ArrayList简单地表示"任何类型".换句话说,可以将任何类型的ArrayList分配给这样的变量.这可以是ArrayList< Integers>,ArrayL ...

最新文章

  1. centos 6.5网卡固定IP重启出错
  2. poj -- 1185 炮兵阵地
  3. 再破纪录!ECCV 2020 旷视研究院15篇成果总览
  4. 云计算设计模式(五)——计算资源整合模式
  5. Express框架实现原理
  6. 源码编译OpenCV卡在ippicv
  7. 使用计算机眼睛保护方法,电脑工作者保护眼睛的22个方法
  8. amend用法 git 信息_Git 高级用法,你用过哪些了
  9. 如何设置并使用运行在远程服务器上jupyter notebook
  10. 555定时器的应用——单稳态触发器
  11. python GIL 全局锁
  12. Android跳转小项目-CHANGE页面-Recycylerview、List、Context(二)
  13. word排版快捷指令_在word文档中如何利用快捷键快速排版呢?
  14. unity VR中制作小地图的方法
  15. mysql 授权root帐号可以远程访问,导入sql文件,登录mysql用root帐号,设置密码
  16. L2-025 分而治之 (25 分)详解
  17. AndroidStudio初体验
  18. vim 配置文件.vimrc[放在home目录下哦]
  19. 抖音矩阵系统源码定制。look here
  20. R语言中 layout函数

热门文章

  1. D3.js 第12课 布局是什么
  2. 7-2 币值兑换 编程总结
  3. NNDL 作业7:第五章课后题
  4. 统信UOS V20镜像文件下载地址
  5. 手机ROOT,ROOT的优缺点
  6. [AcWing] 1018. 最低通行费(C++实现)数字三角形模型
  7. MATLAB视频转换
  8. htc刷Android7.0,快来膜拜HTC神机HD2,谁说低配刷不了安卓7.0?
  9. 蓝桥杯ACM简单题-生日蜡烛 2020-12-22
  10. 三菱FX1N PLC 485与三菱变频器modbus通讯 对变频器进行频率设定,加减速时间设置,正反转,启停控制